.net Select 只有两个复选框之一?
.net Select only one of two checkboxes?
我有两个复选框,一个是真,一个是假。用户应该只被允许 select 一个,当一个被 selected 时,另一个被 deselected ,反之亦然。我有一个执行此操作的 on change 事件,但是如果我 select 一个所以另一个 deselects 然后按浏览器后退按钮,它们都出现 selected?!我输入了一种方法来检查此事件,但是当它们都出现在前端 select 时,后端的逻辑将其中一个视为未被 select 编辑?这有意义吗?
我的复选框:
<asp:PlaceHolder runat="server" ID="phIsValidated">
<asp:CheckBox ID="chbTrue"
Text="True"
runat="server"
AutoPostBack="True"
OnCheckedChanged="Check_Clicked" />
<asp:CheckBox ID="chbFalse"
Text="False"
runat="server"
AutoPostBack="True"
OnCheckedChanged="Check_Clicked" />
</asp:PlaceHolder>
我的更改事件:
protected void Check_Clicked(Object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
if (checkBox.ID=="chbTrue")
{
chbFalse.Checked = !chbTrue.Checked;
}
else
{
chbTrue.Checked = !chbFalse.Checked;
}
}
<asp:RadioButtonList ID="MyRadioButtons" runat="server">
<asp:ListItem Value="Y">Yes</asp:ListItem>
<asp:ListItem Value="N">No</asp:ListItem>
</asp:RadioButtonList>
下面是处理所选项目的代码示例:
http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_radiobuttonlist
第 1 步:添加两个复选框。
第 2 步:向所有复选框添加 OnCheckedChanged 事件。
(如果您不知道如何添加 OnChecKedChanged 事件,您可以按照以下步骤操作。
有两种添加方式。
1st 您可以直接将它添加到您的代码中,例如
<asp:CheckBox runat="server" ID="Try1ID" OnCheckedChanged="Try1ID_CheckedChanged"/>
或
2nd 您可以在 visual studio 中打开设计选项卡,然后双击要创建 OnChecKedChanged 事件的复选框。
)
第 3 步:设置 AutoPostBack = True。
(
示例:
<asp:CheckBox runat="server" ID="Try1ID" AutoPostBack="True" OnCheckedChanged="Try1ID_CheckedChanged"/>
或
您可以通过复选框进行设置 属性 window。
)
第 4 步:在 OnChecKedChanged 事件
内的 .cs 文件中添加 If Else 条件
(
示例:如果您有两个名称为 Try1ID_CheckedChanged 和 Try2ID_CheckedChanged 的复选框
你的情况应该是这样的,
protected void Try1ID_CheckedChanged(object sender, EventArgs e)
{
if (Try1ID.Checked)
{
Try2ID.Checked = false;
}
}
protected void Try2ID_CheckedChanged(object sender, EventArgs e)
{
if (Try2ID.Checked)
{
Try1ID.Checked = false;
}
}
)
第 5 步:按 F5 并测试程序。
我有两个复选框,一个是真,一个是假。用户应该只被允许 select 一个,当一个被 selected 时,另一个被 deselected ,反之亦然。我有一个执行此操作的 on change 事件,但是如果我 select 一个所以另一个 deselects 然后按浏览器后退按钮,它们都出现 selected?!我输入了一种方法来检查此事件,但是当它们都出现在前端 select 时,后端的逻辑将其中一个视为未被 select 编辑?这有意义吗?
我的复选框:
<asp:PlaceHolder runat="server" ID="phIsValidated">
<asp:CheckBox ID="chbTrue"
Text="True"
runat="server"
AutoPostBack="True"
OnCheckedChanged="Check_Clicked" />
<asp:CheckBox ID="chbFalse"
Text="False"
runat="server"
AutoPostBack="True"
OnCheckedChanged="Check_Clicked" />
</asp:PlaceHolder>
我的更改事件:
protected void Check_Clicked(Object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
if (checkBox.ID=="chbTrue")
{
chbFalse.Checked = !chbTrue.Checked;
}
else
{
chbTrue.Checked = !chbFalse.Checked;
}
}
<asp:RadioButtonList ID="MyRadioButtons" runat="server">
<asp:ListItem Value="Y">Yes</asp:ListItem>
<asp:ListItem Value="N">No</asp:ListItem>
</asp:RadioButtonList>
下面是处理所选项目的代码示例: http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_radiobuttonlist
第 1 步:添加两个复选框。
第 2 步:向所有复选框添加 OnCheckedChanged 事件。
(如果您不知道如何添加 OnChecKedChanged 事件,您可以按照以下步骤操作。
有两种添加方式。
1st 您可以直接将它添加到您的代码中,例如
<asp:CheckBox runat="server" ID="Try1ID" OnCheckedChanged="Try1ID_CheckedChanged"/>
或
2nd 您可以在 visual studio 中打开设计选项卡,然后双击要创建 OnChecKedChanged 事件的复选框。
)
第 3 步:设置 AutoPostBack = True。
( 示例:
<asp:CheckBox runat="server" ID="Try1ID" AutoPostBack="True" OnCheckedChanged="Try1ID_CheckedChanged"/>
或
您可以通过复选框进行设置 属性 window。
)
第 4 步:在 OnChecKedChanged 事件
内的 .cs 文件中添加 If Else 条件(
示例:如果您有两个名称为 Try1ID_CheckedChanged 和 Try2ID_CheckedChanged 的复选框 你的情况应该是这样的,
protected void Try1ID_CheckedChanged(object sender, EventArgs e)
{
if (Try1ID.Checked)
{
Try2ID.Checked = false;
}
}
protected void Try2ID_CheckedChanged(object sender, EventArgs e)
{
if (Try2ID.Checked)
{
Try1ID.Checked = false;
}
}
)
第 5 步:按 F5 并测试程序。