我有5个CheckBoxList
控件以及ID
,CheckBoxList1
等的CheckBoxList2
。它们中有相同的列表项。
现在,当我写以下行时:
CheckBoxList1.Items[0].Selected = true;
它选择
CheckBoxList1
的第一项,但同时选择所有其他CheckBoxList
的第一项。知道为什么会发生这样的神秘事件吗?所有
CheckBoxList
具有相同数量的项目,每个项目具有相同的文本和相同的值。它们是从数据库中获取的数据动态填充的。
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM EMPLOYEE_TABLE WHERE EMPLOYEE_TABLE.EmployeeID NOT IN (SELECT ORG_UNIT.ManagerID FROM ORG_UNIT WHERE ORG_UNIT.OrgUnitID = '" + teamid + "') AND EMPLOYEE_TABLE.OrgUnitID = '" + teamid + "'",con);
DataSet da = new DataSet();
DataTable table = new DataTable();
adapter.Fill(table);
adapter.Fill(da);
int count = da.Tables[0].Rows.Count;
CheckBoxList1.Items.Clear();
CheckBoxList2.Items.Clear();
CheckBoxList3.Items.Clear();
CheckBoxList4.Items.Clear();
CheckBoxList5.Items.Clear();
no_of_listitem = count;
for (int i = 0; i < table.Rows.Count; i++)
{
ListItem temp = new ListItem();
temp.Text = table.Rows[i]["FName"].ToString();
employeeid[i] = table.Rows[i]["EmployeeID"].ToString();
temp.Value = i.ToString();
CheckBoxList1.Items.Add(temp);
CheckBoxList2.Items.Add(temp);
CheckBoxList3.Items.Add(temp);
CheckBoxList4.Items.Add(temp);
CheckBoxList5.Items.Add(temp);
}
最佳答案
那可能是因为您填充这些列表的方式...
我猜您正在向每个列表添加相同的对象。因此,对任何对象的任何修改都会影响所有列表。
使用以下语句:
CheckBoxList.Items.Add(New ListItem(table.Rows[i]["FName"].ToString(),
table.Rows[i]["EmployeeID"].ToString()));