Frage

Ich versuche, Text mit einem Etikett der mithilfe von serverseitigen JavaScript (Onclick) und C # im page_load Ereignisse zu ändern. Zum Beispiel würde Ich mag so etwas wie die folgenden schreiben:

Label1.Attributes.Add("onclick", "Label2.text='new caption'")

Kennt jemand den richtigen Code für diese? Auch, was ist diese Art von Code bezeichnet; ist es in C # nur JavaScript oder JavaScript oder gibt es einen bestimmten Namen? Schließlich hat ein Buch oder eine Online-Ressource vorhanden ist, dass die Entscheidungen von control.attributes.add ( "event", "Syntax") Code-Listen mit C # verwenden?

War es hilfreich?

Lösung

Es gibt keine serverseitige Javascript (es sei denn, Sie auf einer Plattform ändern andere als ASP.NET, wo man tatsächlich Javascript als Server-Sprache verwenden). Was Sie tun, ist ein Attribut zu dem HTML-Tag hinzugefügt, und der Code wird vollständig auf der Client-Seite ausgeführt werden.

Zuerst schauen wir uns an, wie es in HTML ohne den Server-seitigen Code und Server-Seite steuert getan:

<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>

Label Kontrollen statt zu verwenden, die Einstellung der Onclick-Attribut von Server-seitigen Code, würden Sie tun, wie folgt:

Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");

Das wird funktionieren, solange die Kontrollen nicht innerhalb eines Namenscontainers sind. Wenn sie sind, ist die ID der Kontrollen mit dem Namen des Behälters voran sie einzigartig zu halten, so müssen Sie die ClientID Eigenschaft nutzen, um herauszufinden, was ihre letzte ID ist:

Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");

Die ClientID enthält immer die ID, die Sie das Element von Javascript zugreifen können, so dass der letzte Code funktioniert immer unabhängig davon, ob die Steuerung in einem Namenscontainer ist oder nicht.

Um herauszufinden, welche Attribute Sie verwenden können, Sie bei der HTML-Dokumentation, zum Beispiel Dokumentation des Internet Explorer aussehen sollte für die span-Element . Wenn am-Dokumentation über eine bestimmte Funktion suchen, die Standards Informationen feststellen, wie das werden Ihnen sagen, wenn es in jedem Browser funktioniert oder einfach nur im Internet Explorer.

Andere Tipps

Der obige Code fügt JavaScript zu einem Server-Steuerelement auf dem Client gerendert. Werfen Sie einen Blick auf diesem MSDN-Artikel - Verwendung von JavaScript Zusammen mit ASP.NET für weitere Informationen.

IIRC, müssen Sie Label2 durch seine ClientID verweisen und müssen einige JavaScript schreiben, um den Textwert des Labels zu ändern (ich glaube, ASP.NET-Etiketten als <span> Tags gerendert werden).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top