2008-10-08 16 views

risposta

37

È possibile utilizzare Attributi per aggiungere la callback sul lato client onclick.

Non sapevo che si può fare questo su tag span, ma se funziona è possibile aggiungere 'onclick' da lblMyLabel.Attributes.Add("onclick", "foo();");

Ma foo(); sarebbe bisogno di un lato client funzione javascript.

System.Web.UI.WebControls.Label NON ha evento server OnClick. Si può esaminare l'utilizzo di AJAX se si desidera la richiamata del server con l'esempio sopra.

Si potrebbe anche usare LinkButton come altri dicono. Puoi far sì che non assomigli a un link usando i CSS, se è solo per sottolineare che sei preoccupato.

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

si può fare in codice che ad esempio Page_Load:

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

penso che si può, ma si tratta di un client- gestore onclick laterale, non lato server. Si lamenterà che l'attributo non è supportato (o alcuni di questi) ma penso che sia correttamente visualizzato. Se si desidera un gestore sul lato server, penso che sarà necessario eseguire un LinkButton.

1

Per quanto ne so è impossibile. Il controllo dell'etichetta emette l'elemento <span> che è "non modificabile" sul lato server. Dovresti sostituire il controllo Label con un LinkButton.

1

Se si desidera un evento onclick, perché non si utilizza un LinkButton, che ha l'evento onclientclick:

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

È possibile utilizzare i CSS per rendere il look link come quello che vuoi

+1

Non volevo che assomigliasse a un link e non volevo modificare un link per apparire come testo normale usando CSS, ma immagino sia quello che devo fare. :(Grazie comunque. – fuentesjr

10

La tua domanda non specifica se intendi aumentare l'evento click sul server (VB o C#) o il client (javascript). Se stai cercando un evento lato server dovresti usare un pulsante di collegamento con css che rende il link appare come un'etichetta. È quindi possibile utilizzare l'evento click sul lato server del pulsante di collegamento. Se stai cercando un evento click sul lato client, digitarlo nella markup del controllo server
asp:label id="MyLabel" runat="server" onclick="javascript:alert('hello');" Text="Click Me";
ASP.NET emetterà attributi aggiuntivi nel markup html che genera.

0

Un altro trucco sarebbe utilizzare un collegamento o un pulsante nascosto con style = "display: none;" e attiva il clic sul controllo server da una funzione javascript nello span.

Qualcosa di simile a questo:

<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

si può sempre tirare fuori il proprio controllo che produce un arco, con javascript postback standard della .net, ma come detto in precedenza utilizzando una LinkLabel con una classe CSS sarebbe più facile

0

Solo per intervenire su questo problema, Ho usato un'etichetta nella mia pagina .aspx che doveva essere visibile nel mio modello DataList se c'erano record figlio nel set di dati.

ho aggiunto una funzione onclick all'etichetta:

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

nel mio file .cs. Ora controllerà un tag div nella pagina .aspx per mostrare o nascondere i record - perché il onclick punta alla funzione javascript del lato client. Si noti il ​​div.ClientID, che lo rende utilizzabile in un datalist.

Come indicato sopra, il tag span diventa effettivamente funzionante con "onclick". E dal momento che il controllo dell'etichetta è reso come span dopo la richiesta di pagina, usando Addtribute.Add ("onclick" .... funziona.

Il risultato è mostrare/nascondere la funzionalità dei dati senza fare un postback. Se usi il LinkButton oi controlli di Simlar - il postback e il ricaricamento della pagina sono inevitabili - a meno che tu non voglia entrare in qualche roba Ajax

NOTA: il tag span non apparirà cliccabile a meno che non lo stile con una sottolineatura e cursore della mano.

credito a questa idea viene da Will Asrari sopra a http://www.willasrari.com/blog/display-nested-repeaters-and-gridviews-asynchronously/000292.aspx

0

Yo È necessario creare un oggetto di classe che erediti dall'etichetta e dal gestore di eventi onclick, che sarà un metodo di yourslef e utilizzerà l'oggetto come etichetta personalizzata.

Problemi correlati