我有两个复选框。如果第一个复选框被选中,则第二个复选框将被禁用;如果第一个复选框未被选中,则第二个复选框将被启用。
<div class="data">
<asp:CheckBox ID="firstCheckBox" runat="server" CssClass="LabelText" EnableViewState="False" AutoPostBack="True" />
</div>
<div class="data">
<asp:CheckBox ID="secondCheckBox" runat="server" CssClass="LabelText" EnableViewState="False" AutoPostBack="True" />
</div>
这是我在Page_Load中的控制部分;
if (firstCheckBox.Checked)
{
secondCheckBox.Enabled = false;
}
else
{
secondCheckBox.Enabled = true;
}
当我选中第一个复选框时,第二个复选框没有任何反应。在我选中第二个复选框后,secondcheckbox已被选中并禁用。
我想念什么?
答案 0 :(得分:1)
您可以使用javascript
启用或禁用复选框。
firstCheckBox
和secondCheckBox
是您复选框的ID。
if(document.getElementById("firstCheckBox").checked = true)
document.getElementById("secondCheckBox").disabled = true;
else
document.getElementById("secondCheckBox").disabled = false;
答案 1 :(得分:0)
您可以使用checkBox CheckChanged事件来执行此操作。 请从表单的加载事件中删除条件,然后添加以下代码。
<div class="data">
<asp:CheckBox ID="firstCheckBox" runat="server" CssClass="LabelText" EnableViewState="False" AutoPostBack="True" OnCheckedChanged="CheckBox1_Check_Clicked" />
</div>
<div class="data">
<asp:CheckBox ID="secondCheckBox" runat="server" CssClass="LabelText" EnableViewState="False" AutoPostBack="True" OnCheckedChanged="CheckBox2_Check_Clicked" />
</div>
protected void CheckBox1_Check_Clicked(Object sender, EventArgs e)
{
if(CheckBox1.Checked==true)
{
CheckBox2.Enable=false;
}
else
{
CheckBox2.Enable=true;
}
}
protected void CheckBox2_Check_Clicked(Object sender, EventArgs e)
{
if(CheckBox2.Checked==true)
{
CheckBox1.Enable=false;
}
else
{
CheckBox1.Enable=true;
}
}
因此,每个复选框应具有两个CheckChanged事件。自动回传。如果应用某种逻辑,您只能对一个事件进行处理。
答案 2 :(得分:0)
我假设您想在服务器端设置第二个复选框的Enabled
状态,因此您应该像下面的示例一样处理第一个复选框的CheckedChanged
事件:
private void firstCheckBox_CheckedChanged(object sender, EventArgs e)
{
secondCheckBox.Enabled = !firstCheckBox.Checked;
}
为什么未触发复选框checked
事件处理程序的问题是因为您将逻辑放在Page_Load
事件中而不是第一个复选框的CheckedChanged
事件中。
类似的问题: