Vytvoření vzájemně se vylučujících zaškrtávacích políček (C#)
Pokud lze vybrat pouze jednu ze sady možností, obvykle se používají přepínače. Existuje však nevýhoda: Jakmile je vybrán jeden přepínač ve skupině, není možné zrušit zaškrtnutí všech přepínačů. Zaškrtávací políčka je možné kdykoli zrušit, ale vzájemně se nevylučují. Tento kurz nabízí nejlepší z obou přístupů: zaškrtávací políčka, která se vzájemně vylučují.
Přehled
Pokud lze vybrat pouze jednu ze sady možností, obvykle se používají přepínače. Existuje však nevýhoda: Jakmile je vybrán jeden přepínač ve skupině, není možné zrušit zaškrtnutí všech přepínačů. Zaškrtávací políčka je možné kdykoli zrušit, ale vzájemně se nevylučují. Tento kurz nabízí nejlepší z obou přístupů: zaškrtávací políčka, která se vzájemně vylučují.
Postup
Sada ASP.NET AJAX Control Toolkit obsahuje extender MutuallyExclusiveCheckBox. To umožňuje programátorům přiřadit jakékoli zaškrtávací políčko k názvu skupiny (Key
atribut). Ze všech zaškrtávacích políček ve stejné skupině může být současně vybráno pouze jedno.
Začněme tím, že na novou ASP.NET stránku umístíme dvě zaškrtávací políčka. Může jich být více, ale dva z nich stačí k prokázání tohoto principu:
<asp:CheckBox ID="cbYes" runat="server" />Yes
<asp:CheckBox ID="cbNo" runat="server" />No
U obou zaškrtávacích políček musí být na stránce umístěn ovládací prvek MutuallyExclusiveCheckBoxExtender. Oba klíčové atributy musí mít stejnou hodnotu, stejně jako atributy hodnoty elementů přepínačů HTML musí být identické k označení skupiny, do které patří. TargetControlID vlastnost extender odkazuje na ID zaškrtávacího políčka.
<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="mecbe1" runat="server"
TargetControlID="cbYes" Key="YesNo" />
<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="mecbe2" runat="server"
TargetControlID="cbNo" Key="YesNo" />
Nakonec zahrňte ASP.NET AJAX ScriptManager
, který vyžadují všechny prvky ASP.NET AJAX Control Toolkit:
<asp:ScriptManager ID="asm" runat="server" />
Uložit a spustit stránku: Můžete zaškrtnout a zrušit zaškrtnutí obou políček, ale v žádném okamžiku není možné zaškrtnout obě zaškrtávací políčka.
Najednou je možné zaškrtnout jenom jedno políčko (kliknutím zobrazíte obrázek v plné velikosti).