好日子朋友,
我知道如何在复选框列表中互相排斥两个复选框或复选框。 但是我的问题与此有点不同,希望从堆栈溢出中获得一些帮助,
我有两个复选框列表,如下所示,从数据集表中我得到复选框值,
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:员工ID,名字,姓氏
Checkbox_selectFields:经理ID,经理FName,经理LName
有没有办法,我可以将这两个复选框互相排斥,即如果我从第一个列表中选择任何一个或多个复选框,我不应该从第二个列表中选择任何复选框,反之亦然。
谢谢...
答案 0 :(得分:1)
我建议使用控件的SelectedValue
属性而不是遍历CheckBox中的项目,因为它会通过回发持续存在(SelectedIndex
不会)(ListControl.SelectedValue Property) :
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;
}
}
}
答案 1 :(得分:0)
嗨,在完成这个问题之后,在蒂姆的提示的帮助下,终于搞定了。如果您有任何简单的解决方案,请提供解决方案。
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;
}
}
}
}
这个工作正常,任何使代码更精确的建议都会非常有用......