флажок отмечен изменением будет отключен другой флажок - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть два флажка.Если первый флажок установлен, второй флажок будет отключен, а если первый флажок снят, второй флажок будет включен.

<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;
}

Когда я установил флажок firstcheckbox, со вторым флажком ничего не происходит.После того, как я установил второй флажок, флажок secondcheckbox был установлен и отключен.

Что мне не хватает?

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

Я предположил, что вы хотите установить Enabled состояние второго флажка на стороне сервера, поэтому вы должны обработать событие CheckedChanged из первого флажка, как в этом примере:

private void firstCheckBox_CheckedChanged(object sender, EventArgs e)
{
    secondCheckBox.Enabled = !firstCheckBox.Checked;
}

Проблема, из-за которой обработчик события флажка checked не запускается, заключается в том, что вы помещаете логику в событие Page_Load вместо события CheckedChanged из первого флажка.

Аналогичная проблема:

Если установлен один флажок, установить другой флажок

0 голосов
/ 21 ноября 2018

Вы можете использовать javascript, чтобы включить или отключить флажок.Здесь firstCheckBox & secondCheckBox - это идентификаторы вашего флажка.

if(document.getElementById("firstCheckBox").checked = true)
document.getElementById("secondCheckBox").disabled = true;
else
document.getElementById("secondCheckBox").disabled = false;
0 голосов
/ 21 ноября 2018

Вы можете сделать это с помощью события 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 для каждого отдельного флажка.Автоответчик верный.То же самое вы можете сделать только с одним событием, если примените некоторую логику.

...