2008-10-08 49 views

Respuesta

37

Puede utilizar los Atributos para agregar la devolución de llamada por clic en el lado del cliente.

No sabía que usted puede hacer esto en etiquetas span, pero si funciona puede agregar 'onclick' por lblMyLabel.Attributes.Add("onclick", "foo();");

Pero foo(); tendría que ser una función 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; } 
5

Usted puede hacerlo en código en el Page_Load por ejemplo:

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

creo que se puede, pero es un cliente- controlador lateral onclick, 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.

1

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

1

Si desea un evento onclick, ¿por qué no utilizar un LinkButton, que tiene la onclientclick evento:

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

Usted puede utilizar CSS para hacer que el enlace tal que lo que quiera

+1

No quería que pareciera un enlace y no quería hackear un enlace para que parezca texto plano usando CSS, pero supongo que eso es lo que tengo que hacer. :(Gracias sin embargo. – fuentesjr

10

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 en el 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.

0

Otro truco sería usar un enlace o botón oculto 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> 
0

siempre se puede rodar fuera de su propio control que produce un palmo, con javascript devolución de datos estándar de .NET, pero como se ha dicho anteriormente utilizando un LinkLabel con una clase CSS sería más fácil

0

Para comentar 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.

I añadió 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 mencionó anteriormente, la etiqueta span realmente 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, usando Addtribute.Add ("onclick" .... funciona.

El resultado es mostrar/ocultar la funcionalidad de los datos sin hacer una devolución de datos. Si usa LinkButton o controles similares, la devolución de datos y la página son inevitables, a menos que desee entrar en algunas cosas de Ajax.

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

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

0

Yo Necesitas crear un objeto de clase que herede de la etiqueta y del controlador de eventos onclick que será un método tuyo y usará tu objeto como una etiqueta personalizada.

Cuestiones relacionadas