Freigeben über


Erstellen von sich gegenseitig ausschließenden Kontrollkästchen (VB)

von Christian Wenz

PDF herunterladen

Wenn nur eine von mehreren Optionen ausgewählt werden kann, werden in der Regel Optionsfelder verwendet. Es gibt jedoch einen Nachteil: Sobald ein Optionsfeld in einer Gruppe ausgewählt ist, ist es nicht möglich, alle Optionsfelder zu deaktivieren. Kontrollkästchen können jederzeit deaktiviert werden, schließen sich jedoch nicht gegenseitig aus. Dieses Tutorial bietet das Beste aus beiden Ansätzen: Kontrollkästchen, die sich gegenseitig ausschließen.

Überblick

Wenn nur eine von mehreren Optionen ausgewählt werden kann, werden in der Regel Optionsfelder verwendet. Es gibt jedoch einen Nachteil: Sobald ein Optionsfeld in einer Gruppe ausgewählt ist, ist es nicht möglich, alle Optionsfelder zu deaktivieren. Kontrollkästchen können jederzeit deaktiviert werden, schließen sich jedoch nicht gegenseitig aus. Dieses Tutorial bietet das Beste aus beiden Ansätzen: Kontrollkästchen, die sich gegenseitig ausschließen.

Schritte

Das ASP.NET AJAX Control Toolkit enthält den GegenseitigExclusiveCheckBox-Extender. Dadurch können Programmierer ein beliebiges Kontrollkästchen einem Gruppennamen (Key Attribut) zuweisen. Aus allen Kontrollkästchen innerhalb derselben Gruppe kann jeweils nur ein Kontrollkästchen ausgewählt werden.

Beginnen wir mit dem Aktivieren von zwei Kontrollkästchen auf einer neuen ASP.NET Seite. Es kann noch mehr sein, aber zwei von ihnen reichen aus, um das Prinzip zu demonstrieren:

<asp:CheckBox ID="cbYes" runat="server" />Yes
<asp:CheckBox ID="cbNo" runat="server" />No

Für beide Kontrollkästchen muss ein MutuallyExclusiveCheckBoxExtender-Steuerelement auf der Seite platziert werden. Beide Schlüsselattribute müssen den gleichen Wert aufweisen, genauso wie die Wertattribute von HTML-Optionsfeldelementen identisch sein müssen, um die Gruppe anzugeben, zu der sie gehören. Die TargetControlID-Eigenschaft des Extenders verweist auf die ID des Kontrollkästchens.

<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="mecbe1" runat="server"
 TargetControlID="cbYes" Key="YesNo" />
<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="mecbe2" runat="server"
 TargetControlID="cbNo" Key="YesNo" />

Schließen Sie schließlich die ASP.NET AJAX ScriptManager ein, die für alle Elemente des ASP.NET AJAX Control Toolkits erforderlich ist:

<asp:ScriptManager ID="asm" runat="server" />

Seite speichern und ausführen: Sie können beide Kontrollkästchen aktivieren und deaktivieren. Beide Kontrollkästchen können jedoch zu keinem Zeitpunkt aktiviert werden.

Es kann jeweils nur ein Kontrollkästchen aktiviert werden.

Es kann jeweils nur ein Kontrollkästchen aktiviert werden (Klicken Sie, um das bild in voller Größe anzuzeigen)