Ich habe das folgende Textfeld Server-Steuerelement in meiner Webseite:
%Vor%Wenn die Seite gerendert wird, enthält sie Folgendes:
%Vor%Ich versuche, die Client-ID des Textfelds als zweiten Parameter dieser JavaScript-Funktion zu übergeben:
%Vor%Wie bekomme ich es dazu, auf dem Server die Kontrolle der texbox auszuwerten und diese literale Zeichenfolge an die Javascript-Funktion zu übergeben?
Setzen Sie <%= txtZip.ClientId %>
zwischen einfache Anführungszeichen, um so zu sein:
Aktualisieren
Bitte überprüfen Sie diesen Artikel: Ссылка
Auch ich mag diese Antwort
Es gibt viele Möglichkeiten, dies zu beheben, aber ich finde die einfachste Sache im allgemeinen Fall ist die Verwendung des ScriptManager, um ein separates Skript oben auf meinen Seiten speziell für den Zweck des Hinzufügens von ClientIDs aufzunehmen:
%Vor%Rufen Sie das im PreRender-Ereignis (irgendwo nach der Datenbindung) auf. Dann, wenn Sie ein wenig Phantasie wollen, können Sie leicht die Methode anpassen, um ein IEnumerable oder params Array von Steuerelementen zu akzeptieren, und lassen Sie es die Steuerelementnamen für die Javascript-Variablennamen verwenden. Manchmal mache ich das, aber es ist normalerweise einfach genug, um einfach das, was ich brauche, direkt zu der Methode hinzuzufügen.
Auch das ist etwas peinlich, weil Kontrollen, die in anderen Benennungscontainern (wie Grids) enthalten sind, immer noch Probleme verursachen können. Ich würde mir wünschen, dass das ASP.Net-Team bald so etwas direkt in das Framework einbauen könnte, aber ich erwarte es nicht wirklich: (
Das gleiche Problem ist aufgetreten, konnte nicht mit einer der oben angegebenen Methoden behoben werden. Also fügte ich ein Zwischenprodukt JS hinzugefügt einen Aufruf an die tatsächliche JS-Funktion basierend auf übergebenen Wert. Ich kenne seine eine lahme Methode, um es zu lösen, aber es funktionierte immer noch für mich.
Vorher:
%Vor%Nach
%Vor% Ich habe das gleiche Problem mit einem <asp:CheckBox...
Bei Verwendung von <%= TargetControl.ClientID %>
(ohne umgebende einfache Anführungszeichen) gibt ASP.NET '<%= TargetControl.ClientID %>'
zurück, und die zugehörige JavaScript-Funktion wird nicht aufgerufen.
Bei der Verwendung von '<%= TargetControl.ClientID %>'
(mit umgebenden Single-Anführungszeichen) wird der Ausdruck von ASP.NET nicht ausgewertet und in den einfachen Anführungszeichen genau gleich dargestellt.
Also entscheide ich mich, stattdessen mit einem Input (Checkbox) HTLM-Steuerelement zu versuchen, indem ich das folgende Markup verwende
%Vor%und es hat funktioniert !!!
Ich hoffe, es hilft.
Tags und Links javascript asp.net