使两个复选框列表互斥
本文关键字:复选框 列表 两个 | 更新日期: 2023-09-27 18:11:02
朋友们好,
我开始知道如何使两个复选框或复选框列表中的复选框互斥。然而,我的问题与此略有不同,希望从堆栈溢出中得到一些帮助,
嗯,我有两个复选框列表,如下所示,从一个数据集表我得到的复选框值,
CheckBoxlist1 - Checkbox_selectColumns
if (IsDataSetNotEmpty(ds))
{
CheckBox_selectColumns.Items.Clear();
foreach (DataRow row in ds.Tables[0].Rows)
{
CheckBox_selectColumns.Items.Add(row[0].ToString());
}
}
CheckBoxlist2 - Checkbox_selectFields
if (IsDataSetNotEmpty(ds))
{
Checkbox_selectFields.Items.Clear();
foreach (DataRow row in ds.Tables[1].Rows)
{
CheckBox_selectColumns.Items.Add(row[0].ToString());
}
}
我将在每个列表中得到以下复选框。
Checkbox_selectColumns: Employee ID, First Name, Last Name
Checkbox_selectFields: manager ID, manager FName, manager LName
有没有办法,我可以使这两个复选框互斥,也就是说,如果我从第一个列表中选择任何一个或多个复选框,我不应该从第二个列表中选择任何复选框,反之亦然…
谢谢…
与其循环遍历CheckBox中的项,我建议使用控件的SelectedValue
属性,因为它会通过回发持续存在(SelectedIndex
不会)。SelectedValue财产):
protected void CheckBox_selectColumns_SelectedIndexChanged(object sender, EventArgs e)
{
if (CheckBox_selectColumns.SelectedValue != "")
{
foreach (ListItem listItem in CheckBox_SelectAll.Items)
{
listItem.Selected = false;
}
}
}
protected void CheckBox_SelectAll_CheckChanged(object sender, EventArgs e)
{
if (CheckBox_SelectAll.SelectedValue != "")
{
foreach (ListItem listItem in CheckBox_selectColumns.Items)
{
listItem.Selected = false;
}
}
}
嗨,在Tim的建议的帮助下,终于解决了这个问题。如果您有简单的解决方法,请提供。
protected void CheckBox_selectColumns_SelectedIndexChanged(object sender, EventArgs e)
{
bool Is_select = false;
foreach (ListItem listItem in CheckBox_selectColumns.Items)
{
if (listItem.Selected)
{
Is_select = true;
}
}
if (Is_select)
{
foreach (ListItem listItem in CheckBox_SelectAll.Items)
{
if (listItem.Selected)
{
listItem.slected=false;
}
}
}
}
对于第二个Checkbox List执行相反的操作。
protected void CheckBox_SelectAll_CheckedChanged(object sender, EventArgs e)
{
bool Is_select = false;
foreach (ListItem listItem in CheckBox_SelectAll.Items)
{
if (listItem.Selected)
{
Is_select = true;
}
}
if (Is_select)
{
foreach (ListItem listItem in CheckBox_selectColumns.Items)
{
if (listItem.Selected)
{
listItem.slected=false;
}
}
}
}