So habe ich eine UserControl
mit einigen kaskadierenden DropDownList
s darauf. Die Auswahl aus Liste 1 aktiviert Liste 2, die wiederum Liste 3 aktiviert. Nachdem Sie eine Auswahl in allen drei Listen getroffen haben, können Sie zur nächsten Seite wechseln.Aktualisieren eines Steuerelements außerhalb des UpdatePanels
Die DropDownList
s sind alle in einem UpdatePanel
. Aber die Schaltfläche "Nächste Seite" befindet sich außerhalb der UpdatePanel
. Diese Schaltfläche sollte deaktiviert werden, bis alle drei Listen eine Auswahl haben, und dann sollte sie wieder aktiviert werden. Aber da die Taste außerhalb der UpdatePanel
liegt, wird sie nicht aktualisiert, wenn ich eine Auswahl treffe. (bearbeiten: Die „Nächste Seite“ Taste ist auf einer Seite, die auch die UserControl
enthält.)
Ich kenne einen Weg, dies zu beheben:
var scriptManager = ScriptManager.GetCurrent(this.Page);
scriptManager.RegisterPostBackControl(dropDownList1);
scriptManager.RegisterPostBackControl(dropDownList2);
scriptManager.RegisterPostBackControl(dropDownList3);
Dies sorgt für eine Postback, wenn eine Drop-Down-Liste geändert, damit die Schaltfläche aktualisiert werden kann. Aber wenn ich das tue, könnte ich es vereinfachen, indem ich die UpdatePanel
in erster Linie loswerde.
Gibt es einen anderen Weg, durch etwas cleveres JavaScript oder etwas, dass ich ein Steuerelement außerhalb eines UpdatePanel
aktualisieren kann, ohne auf Ajax verzichten zu müssen?
Dies ist am nächsten zu dem, was ich tun musste. Statt eines Triggers musste ich einfach eine Methode auf der Hauptseite aufrufen (casting this.Page), um die Next-Taste richtig zu setzen. Ich musste auch RegisterPostBackControl auf der Schaltfläche Weiter, um es in das UpdatePanel zu arbeiten. –