net ejemplos demos asp asp.net controls

ejemplos - ¿Hay alguna manera de agregar un evento onclick a un control de servidor de etiqueta ASP.NET?



telerik asp net c# (10)

Yo quería hacer algo como esto:

<asp:Label ID="lblMyLabel" onclick="lblMyLabel_Click" runat="server">My Label</asp:Label>

Sé que en Javascript puedo:

<span onclick="foo();">My Label</span>

Entonces me pregunto por qué no puedo hacer eso con un objeto Label.


Creo que puedes, pero es un controlador onclick del lado del cliente, no del lado del servidor. Se quejará de que el atributo no sea compatible (o algo así), pero creo que se representa correctamente. Si quieres un manejador del lado del servidor, creo que deberás hacer un LinkButton.


Otro truco sería usar un enlace oculto o un botón con style = "display: none;" y activa el clic en el control del servidor desde una función javascript en el lapso.

Algo como esto:

<asp:linkbutton id="lblMyLink" onClick="lblMyLink_Click" runat="server" style="display:none;">My Link</asp:linkbutton> <span onclick="document.getElementById(''lblMyLink'').click();">My Label</span>


Por lo que sé, eso es imposible. El control de etiqueta emite <span elemento <span > que es "no cliqueable" en el lado del servidor. Debería reemplazar su control Label con un LinkButton.


Puede usar los Atributos para agregar una devolución de llamada por el lado del cliente.

No sabía que puedes hacer esto en las etiquetas de span, pero si funciona, puedes agregar ''onclick'' mediante lblMyLabel.Attributes.Add("onclick", "foo();");

Pero foo(); necesitaría ser una función de javascript del lado del cliente.

System.Web.UI.WebControls.Label NO tiene evento de servidor OnClick. Podría considerar el uso de AJAX si desea una devolución de llamada del servidor con el ejemplo anterior.

También podría usar LinkButton como otro decir. Puede hacer que no se vea como un enlace usando CSS, si es solo ese subrayado lo que le preocupa.

ASPX:

<asp:LinkButton ID="LinkButton1" runat="server" CssClass="imjusttext" OnClick="LinkButton1_Click"> LinkButton </asp:LinkButton>

CSS:

a.imjusttext{ color: #000000; text-decoration: none; } a.imjusttext:hover { text-decoration: none; }


Puedes hacerlo en código en la página_carga, por ejemplo:

void Page_Load(object sender, EventArgs e) { lblMyLabel.Attributes.Add("onclick", "javascript:alert(''ALERT ALERT!!!'')"); }


Si desea un evento onclick, ¿por qué no usa un botón de enlace, que tiene el evento onclientclick ?

<asp:linkbutton id="lblMyLink" onclientclick="lblMyLink_Click" runat="server">My Label</asp:linkbutton>

Puedes usar CSS para hacer que el enlace se vea como quieras


siempre puedes desplegar tu propio control, que produce un intervalo, con el javascript de devolución de datos estándar de .net, pero como se dijo anteriormente, usar una etiqueta de enlace con una clase de CSS sería más fácil


Solo para hablar sobre este tema, utilicé una etiqueta en mi página .aspx que solo se podía ver en mi plantilla de elementos de la lista de datos si había registros secundarios en el conjunto de datos.

Agregué una función onclick a la etiqueta:

moreOptionsLabel.Attributes.Add ("onclick", string.Format ("toggle_visibility (''{0}'')", div.ClientID));

en mi archivo .cs Ahora controlará una etiqueta div en la página .aspx para mostrar u ocultar los registros, porque el onclick apunta a una función javascript del lado del cliente. Observe el div.ClientID, que lo hace viable en un datalist.

Como se señaló anteriormente, la etiqueta span se vuelve funcional con "onclick". Y dado que el control de etiqueta se representa como un lapso después de la solicitud de página, usar Addtribute.Add ("onclick" ... funciona).

El resultado es mostrar / ocultar la funcionalidad de los datos sin hacer una devolución de datos. Si usas LinkButton o controles simlares, la devolución de datos y la recarga de la página son inevitables, a menos que desees acceder a algunas cosas de Ajax.

NOTA: la etiqueta span no se verá clicable a menos que la aplique con un subrayado y un cursor de mano.

El crédito a esta idea proviene de Will Asrari en http://www.willasrari.com/blog/display-nested-repeaters-and-gridviews-asynchronously/000292.aspx


Necesita crear un objeto de clase que herede de la etiqueta y del controlador de eventos onclick, que será un método por su cuenta y usará su objeto como una etiqueta personalizada.


Su pregunta no especifica si quiere plantear el evento click en el servidor (VB o c #) o el cliente (javascript). Si está buscando un evento del lado del servidor, debe usar un botón de enlace con css que lo haga el enlace aparece como una etiqueta. A continuación, puede usar el evento de clic del lado del servidor del botón de enlace. Si está buscando un evento de clic del lado del cliente, simplemente escríbalo en el marcado de control del servidor
asp:label id="MyLabel" runat="server" onclick="javascript:alert(''hello'');" Text="Click Me";
ASP.NET emitirá atributos adicionales en el marcado HTML que se genera.