2009-08-03 4 views
0

Gibt es eine Möglichkeit, eine JavaScript-Funktion aufzurufen, wenn der selectedIndex einer ausgewählten Eingabe geändert wurde?JavaScript-Funktion bei ausgewählter Indexänderung des ausgewählten Eingabetyps in ASP.NET aufrufen

Mit diesem Code in C# -Code hinter Datei

riskSeverityDropDown.SelectedValue = Convert.ToString(planRisk.Severity); 
riskSeverityDropDown.SelectedIndexChanged += new EventHandler(riskSeverityDropDown_SelectedIndexChanged); 
riskSeverityDropDown.AutoPostBack = true; 

wollen etwas anderes auf der Seite mit Javascript ändern, wenn der Index geändert wird.

Jede Hilfe würde sehr geschätzt werden. Vielen Dank im Voraus

+0

Es sieht so aus, als ob Sie versuchen, ein dynamisches Steuerelement zu erstellen ... Haben Sie darüber nachgedacht, ein reguläres Steuerelement in das Markup zu setzen und nur sichtbar auf True oder False zu setzen, wenn nötig? –

Antwort

0

Sie möchten ein Attribut zu diesem Dropdown namens "onchange" hinzufügen und es so einstellen, dass es eine JavaScript-Methode Ihrer Wahl aufruft.

+0

Dies wird nicht funktionieren - solange AutoPostBack auch wahr ist, werden alle Änderungen, die sein Javascript macht, sofort verloren gehen. –

1

Fügen Sie einfach einen onchange zu Ihrer asp: Dropdownliste hinzu.

<asp:DropDownList ID="riskSeverityDropdown" 
        AutoPostBack="True" 
        SelectedIndexChanged="riskSeverityDropDown_SelectedIndexChanged" 
        onChange="functionName()" 
        runat="server" /> 

oder diese Verwendung von Code-Behind zu tun:

riskSeverityDropdown.Attributes["onchange"] = "functionName()"; 
+1

Dies wird nicht funktionieren - solange AutoPostBack auch wahr ist, werden alle Änderungen, die sein Javascript macht, sofort verloren gehen. –

5

Sie sind bereits auf Server-Code geht (Autopostback wahr ist), was bedeutet, Sie gehen die gesamte Seite neu zu erstellen sowieso. Das Ausführen von Javascript an dieser Stelle wäre ein wenig albern, weil alle Änderungen, die Sie am DOM vornehmen, verloren gehen und alle Ajax-Anfragen, die Sie senden möchten, stattdessen mit normalem Server-Code behandelt werden können. Wenn Sie dies wirklich tun möchten, können Sie das Skript nur so registrieren, dass ausgeführt wird, wenn die Seite nach dem Postback lädt.

Auf der anderen Seite, wenn Sie bei allen diese ohne Server-Code tun können, setzen Sie Autopostback auf False und die einfache HTML-Auswahlsteuerung hat ein schönes onchange Ereignis, das Sie behandeln können.

-2

Verwenden Sie JQuery. Es bietet eine Fülle von Ereignissen, die Sie verwenden können, um praktisch gegen alles einheitlich zu codieren. Es ist auch ziemlich einfach zu lernen, kompakt und beliebt.

Kurz gesagt, Sie können nicht falsch liegen, wenn Sie JQuery verwenden. Es soll solche Probleme gut lösen.

Verwandte Themen