ASP.NET - Control Personalizado

 
Vista:

Control Personalizado

Publicado por Daniel (7 intervenciones) el 10/04/2007 17:52:32
Hola a todos.

Tengo un problema que no se como resolver.

Extendí un control linkbutton ya que necesitaba que tuviera 2 propiedades mas. Y luego lo use en mi pagina. Las 2 propiedades nuevas que le agregue estan enlazadas a datos dinamicamente (Container.Dataitem, etc). El linkbutton nuevo esta dentro de un repeater. Pero cuando quiero obtener los datos de dichas propiedades, no me devuelve nada. Al depurar, las propiedades set y get obtienen los valores correctamente, pero cuando quiero obtener los valores no devuelve nada. Es un poco complicado, asi que aqui les pongo el codigo con los comentarios correspondientes.

Ojala puedan ayudarme. Gracias.

ESTE CODIGO EXTIENDE EL LINKBUTTON PARA QUE ADMITA 2 PROPIEDADES MAS, "EJECUCION" Y "PARAMETROS"
<Assembly: TagPrefix("LinkButtonExt.Web.Controls", "asp")>
Namespace LinkButtonExt.Web.Controls
Public Class LinkButtonExt
Inherits LinkButton

Protected parametros_ As String
Protected ejecucion_ As String

'AL MOMENTO DE "DIBUJAR" EL REPEATER, LOS DATOS SE ENLAZAN CORRECTAMENTE, YA QUE VALUE TIENE CORRECTAMENTE LOS DATOS QUE OBTENGO DE UNA BASE DE DATOS
Public Property Parametros() As String
Get
Return parametros_
End Get
Set(ByVal value As String)
parametros_ = value
End Set
End Property

Public Property Ejecucion() As String
Get
Return ejecucion_
End Get
Set(ByVal value As String)
ejecucion_ = value
End Set
End Property

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)

'AQUI CREO LOS 2 PARAMETROS NUEVOS
Me.Attributes.Add("Parametros", "")
Me.Attributes.Add("Ejecucion", "0")
End Sub
End Class
End Namespace

Y AHORA AQUI LO AGREGO A MI PAGINA, ESTA DENTRO DE UN REPEATER (NO PONGO TODO EL CODIGO, SOLO DONDE TENGO EL PROBLEMA), EJECUCION Y PARAMETROS SON LAS 2 PROPIEDADES NUEVAS QUE LAS ENLAZO A DATOS QUE OBTENGO DE UNA BASE DE DATOS
<ItemTemplate>
<tr>
<td>
<asp:LinkButtonExt
CommandName=<%# DataBinder.Eval(Container.DataItem, "Destino") %> CommandArgument=<%# DataBinder.Eval(Container.DataItem, "id_item_menu") %> Text=<%# DataBinder.Eval(Container.DataItem, "Descripcion")%>
Ejecucion=<%# DataBinder.Eval(Container.DataItem, "Ejecuta") %>
Parametros=<%# DataBinder.Eval(Container.DataItem, "Parametros") %> ID="lnkMenu" runat="server" ></asp:LinkButtonExt>
</td>
</tr>
</ItemTemplate>

Y AQUI TENGO EL PROBLEMA, AL MOMENTO DE PINCHAR SOBRE EL LINK BUTTON
Protected Sub rpt_Menu_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles rpt_Menu.ItemCommand
'... BLA BLA BLA.....

item = e.CommandArgument 'FUNCIONA PERFECTO
accion = e.CommandName 'FUNCIONA PERFECTO

' EL EVENTO FUE GATILLADO DESDE EL LINKBUTTONEXT
origen = CType(e.CommandSource, LinkButtonExt.Web.Controls.LinkButtonExt)

'AQUI NO ME OBTIENE LOS DATOS QUE SUPUESTAMENTE DEBIO OBTENER
'QUE PUEDE SER????? SOLO VIENE 0 Y NOTHING (EL CERO ES EL VALOR
'POR DEFECTO CUANDO AGREGUE EL PARAMETRO EN EL CONSTRUCTOR
ejecuta = origen.Ejecucion
parametros = origen.Parametros
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder