Attributi Javascript (aspx.cs) sul lato server. Aggiungi codice per modificare il testo di un'etichetta

StackOverflow https://stackoverflow.com/questions/844275

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 #?

È stato utile?

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top