Ich habe ein Kontrollkästchen, das aktiviert und deaktiviert wird, wenn JS beim Laden der Seite ausgeführt wird.
%Vor%Wenn ich den Wert des Kontrollkästchens mit (auf der Serverseite)
bekomme %Vor%Ich bekomme immer ein falsches
BEARBEITEN: Ich bin besorgt über die Verwendung schwerer asp.net-Steuerelemente, da die Seitengröße in dieser Anwendung niedrig sein muss. Gibt es einen Ausweg mit HTMl-Steuerelementen?
Deaktivierte Formularsteuerelemente sind nicht "erfolgreiche Kontrollen ", das heißt, sie werden überhaupt nicht mit Ihrem Formular" eingereicht ".
Wenn Sie das Kontrollkästchen deaktivieren, wird immer false zurückgegeben.
Die beste Idee ist, das Kontrollkästchen nur lesbar zu machen, so dass es den Wert zurückgibt, wie es ist.
Mach das readonly="readonly"
.
Ich bekomme auch weniger als intuitives Verhalten. Wenn ich den Wert in PageInit teste, wird immer True zurückgegeben. Das Testen in Page_Load gibt den ausgewählten Wert zurück.
Verwenden Sie ein serverseitiges Steuerelement anstelle eines HTML-Steuerelements mit runat = server.
%Vor%Sie geben auch "disabled" control an, aber ich sehe nichts, was in Ihrem Markup deaktiviert ist. So oder so, besser ein Server WebControl zu verwenden.
Obwohl die ursprüngliche Frage über das HtmlInputCheckBox-Steuerelement war, denke ich, dass es nützlich sein wird, zu erwähnen, dass ein ähnliches Problem auch für das Kontrollkästchen-Steuerelement existiert, für das das Bild komplizierter ist, da es einen Unterschied zwischen Enabled="False" und deaktiviert gibt="deaktiviert". Ich poste Ergebnisse der Untersuchung hier: ASP.Net Checkbox.Checked ist auf Standard gesetzt Wenn deaktiviertes Attribut oder Unterschied zwischen aktivierter Eigenschaft und deaktiviertem Attribut verwendet wird . Insbesondere wird erläutert, warum die Checked-Eigenschaft zurückgesetzt wird, wenn das deaktivierte Attribut verwendet wird, und warum sie nicht zurückgesetzt wird, wenn die Servereigenschaft Enabled verwendet wird.