Gewusst wie: deaktivieren ein ASP:Panel, aber außer selektive Kindes kontrollieren?
Ich habe ein asp:panel auf der Wurzel und eine Menge von Steuerelementen in.
Wenn ich deaktivieren Sie die Systemsteuerung, alle Kind sind disbled (Panel.Enabled=false).
Aber ich möchte einige von Ihnen, z.B. hyperlink, halten auch dann aktiviert, wenn der container deaktiviert.
Wenn ich dies nicht in eine intelligentere Weise, werde ich zu brechen, meine Platte in viele Stücke zu machen, es funktioniert.
EDIT:
Eigentlich das, was ich mache, ist eine "NUR-LESEN" - version einer Seite und eine "UPDATE-FÄHIG" - version eines Formulars.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, deaktivieren Sie die meisten der Steuerelemente, die Sie wollen, so etwas wie
oder wenn Sie wollen einfach nur alle hyperlinks aktiviert
params control[] keepEnabled
parameter und führen Sie dannforeach (WebControl c in keepEnabled) c.Enabled=true;
Versucht, alle der Auflösung, aber es nicht geklappt hat dann einfach angefangen mit den Grundlagen und archiviert, bitte, siehe unten Antwort an, die Ihnen helfen können,
als Literal-Steuerelemente?(wie contentplaceholder kann nicht zugegriffen werden, da webcontrol) und die cntrols enable-Eigenschaft ist verfügbar für web-und html-Steuerelemente nur
Sehr schwer zu verstehen, was genau Sie erreichen wollen. Die oben genannten Antworten scheinen vollkommen plausibel. Ich habe das Gefühl aber, dass Sie behalten möchten, aktiviert ist nur für bestimmte Steuerelemente, die möglicherweise einige spezielle Schaltflächen und einige spezielle hyperlinks. Ist das richtig???
Warum glauben Sie nicht an irgendeine Art von Ansatz, bei dem Sie erklären, die Kontrollen (mit Ihrer id zum Beispiel), die Sie NICHT wollen, zu deaktivieren???? Könnten Sie tun, dass durch die Deklaration einer Liste von Zeichenfolgen, die control-id ' s, die sollte nicht deaktiviert werden, in Ihre Seite/usercontrol wie
Dann in der Methode, wo Sie rekursiv deaktivieren Sie alle Steuerelemente, die von Ihrer Website, die Sie überprüfen, ob das Steuerelement nicht in der Liste "controlIdsToKeepEnabled".
Etwas kompliziert, aber könnte arbeiten für den speziellen Fall, die Sie haben. Diese Funktionalität könnte man dann schön verpackt in eine separate benutzerdefinierte server-control.
gut, wenn Sie nicht wollen, zu brechen das panel dann können Sie mit einer Schleife über seine untergeordneten Steuerelemente (wenn es nicht zu viele). Pseudo-code: