Attributi Javascript (aspx.cs) sul lato server. Aggiungi codice per modificare il testo di un'etichetta
-
20-08-2019 - |
Domanda
Sto provando a cambiare il testo di un'etichetta usando JavaScript (onclick) sul lato server e C # all'interno dell'evento page_load. Ad esempio, vorrei scrivere qualcosa di simile al seguente:
Label1.Attributes.Add("onclick", "Label2.text='new caption'")
Qualcuno conosce il codice corretto per questo? Inoltre, a cosa si riferisce questo tipo di codice; è solo JavaScript o JavaScript in C # o c'è un nome specifico? Infine, esiste un libro o una risorsa online che elenca le opzioni di control.attributes.add (& Quot; event & Quot ;, & Quot; sintassi & Quot;) da usare con C #?
Soluzione
Non esiste JavaScript sul lato server (a meno che non si passi a una piattaforma diversa da ASP.NET in cui si utilizza effettivamente JavaScript come lingua del server). Quello che stai facendo è aggiungere un attributo al tag html e il codice verrà eseguito interamente sul lato client.
Innanzitutto, vediamo come viene eseguito in HTML senza il codice lato server e i controlli lato server:
<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>
Per utilizzare invece Label
i controlli, impostando l'attributo onclick dal codice lato server, dovresti fare così:
Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");
Funzionerà finché i controlli non si trovano all'interno di un contenitore di denominazione. In tal caso, l'id dei controlli viene anteposto con il nome del contenitore per mantenerli univoci, quindi è necessario utilizzare la proprietà ClientID
per scoprire qual è il loro ID finale:
Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");
<=> contiene sempre l'id che è possibile utilizzare per accedere all'elemento da Javascript, quindi l'ultimo codice funziona sempre indipendentemente dal fatto che il controllo sia in un contenitore di denominazione o meno.
Per scoprire quali attributi è possibile utilizzare, consultare la documentazione HTML, ad esempio la documentazione di Internet Explorer per elemento span . Quando guardi la documentazione per una funzione specifica, nota le Informazioni sugli standard, poiché ciò ti dirà se funziona in qualsiasi browser o solo in Internet Explorer.
Altri suggerimenti
Il codice sopra aggiunge JavaScript a un controllo server reso sul client. Dai un'occhiata a questo articolo MSDN - Uso di JavaScript insieme a ASP.NET per ulteriori informazioni.
IIRC, dovrai fare riferimento a Label2
dal suo ID cliente e dovrai scrivere un po 'di JavaScript per cambiare il valore del testo dell'etichetta (penso che le etichette ASP.NET vengano visualizzate come <span>
tag).