MutuallyExclusiveCheckBox(创建互斥复选框)

概述

如果只能从一组选项中选择一项,我们通常使用单选按钮。

但这样做也有缺点:一旦选中了一组中的某个单选按钮,则将无法不选中所有单选按钮。

复选框可以随时取消勾选,但不具备互斥属性。在本教程中,我们将讨论一种兼具两者长处的方案:

即,互斥复选框。
步骤

ASP.NET AJAX Control Toolkit 中包含MutuallyExclusiveCheckBox 扩展器。它允许编程人员将任意的复选框赋值给一个组名

(Key属性)。但在同一组的所有复选框中,每次只能选择一个。

我们首先将两个复选框放在一个新的ASP.NET 页面上。复选框的数量还可以更多,但两个就足以演示互斥复选框的原理了:
<asp:CheckBox ID="cbYes" runat="server" />Yes
<asp:CheckBox ID="cbNo" runat="server" />No

对于这两个复选框,MutuallyExclusiveCheckBoxExtender 控件必须位于上述页面中。

两个复选框的Key 属性值必须相同,这与使用单选按钮的情形类似

(在使用单选按钮时,各HTML 单选按钮元素的值属性必须相同,以便指示所属的组)。

扩展器的TargetControlID 属性指向复选框的ID。
<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="mecbe1" runat="server"
     TargetControlID="cbYes" Key="YesNo" />
<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="mecbe2" runat="server"
     TargetControlID="cbNo" Key="YesNo" />

最后,在标记中包含ASP.NET AJAX ScriptManager,ASP.NET AJAX Control Toolkit 的所有元素都需要该控件:
<asp:ScriptManager ID="asm" runat="server" />

保存并运行该页面:我们可以勾选和取消勾选这两个复选框,但它们不能被同时勾选。

 

-----------------------------------------------------------------

<asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:CheckBox ID="CB1" Text="Yes" runat="server" />
        <asp:CheckBox ID="CB2" Text="No" runat="server" />
        <asp:CheckBox ID="CB3" Text="None" runat="server" />
       
        <cc1:MutuallyExclusiveCheckBoxExtender ID="Myes" TargetControlID="CB1" Key="yesno" runat="server"></cc1:MutuallyExclusiveCheckBoxExtender>
        <cc1:MutuallyExclusiveCheckBoxExtender ID="Mno" TargetControlID="CB2" Key="yesno" runat="server"></cc1:MutuallyExclusiveCheckBoxExtender>
        <cc1:MutuallyExclusiveCheckBoxExtender ID="Mnone" TargetControlID="CB3" Key="yesnos" runat="server"></cc1:MutuallyExclusiveCheckBoxExtender>

注意:要互拆的CheckBox    MutuallyExclusiveCheckBoxExtender的Key="yesnos" 必须设为相同

posted @ 2012-04-20 23:42  sidihu  阅读(376)  评论(0编辑  收藏  举报