Verwandte Frage: Alle Web-Steuerelemente eines bestimmten Typs abrufen auf einer Seite
In der obigen Frage habe ich gefragt, wie ich alle Bedienelemente bekommen kann, funktioniert wie ein Zauber, aber etwas passt einfach nicht so, also dachte ich, dass ich es sein könnte. Ich habe den folgenden Code, aber es manipuliert nicht die Steuerelemente auf der Seite, aber in meiner Theorie sollte es funktionieren.
%Vor%Das ist der Code, GetControlList () Code, den Sie von der verwandten Frage bekommen können, die zeigt, wie es alle Kontrollen bekommt, es ist nur meine Manipulation. Ich versuche, alle Dropdownlistenlistenelemente zu erhalten und ihnen einen Titel hinzuzufügen, damit ich einen Tooltip haben kann.
Es ist eine schnelle Lösung für IE8 und darunter, welche langen Text in Dropdown-Boxen schneidet.
Page_Load
passiert oft zu früh; Page_PreRender
ist der letzte Moment, bevor der HTML-Code der Seite tatsächlich für den Browser gerendert wird. In vielen Fällen ist dies der beste Ort, um Attribute für Benutzersteuerelemente festzulegen.
Dies liegt daran, dass während des Webformular (Seiten) -Lebenszyklus andere Ereignisse auf der Seite (und in den Benutzersteuerelementen auf der Seite ...) vorkommen, die manchmal entfernen / ersetzen / überschreiben ( wirklich ) diese Attribute. Sie können diese Attribute nur dann an den Browser senden, wenn Sie sie anfügen, nachdem alle anderen Lebenszyklusereignisse ausgelöst und bearbeitet wurden, in Page_PreRender.
Tatsächlich kann sogar PreRender
in einigen Fällen zu früh sein (z. B. könnten Sie DropDownList
-Steuerelemente während der Datenbindung von Steuerelementen, die DataSourceID
verwenden, zum Steuerelementbaum hinzufügen).
Es gibt zwei weitere Ereignisse, die möglicherweise besser geeignet sind:
PreRenderComplete . An diesem Punkt werden alle Steuerelemente erstellt und die Seite kann wiedergegeben werden.
SaveStateComplete . Tritt ein, nachdem der Ansichtszustand und der Steuerungszustand gespeichert wurden. Alle Änderungen, die Sie hier vornehmen, werden nicht beibehalten, um den Status anzuzeigen.
In Ihrem Beispiel (Hinzufügen von clientseitigen Attributen) würde ich das Ereignis SaveStateComplete
verwenden, um unnötigen View State Bloat zu vermeiden.
Tags und Links .net c# asp.net drop-down-menu