我有5 CheckBoxList
个ID
CheckBoxList1
CheckBoxList2
,CheckBoxList1.Items[0].Selected = true;
的控件,依此类推。它们中包含相同的列表项。
现在我写下以下一行:
CheckBoxList1
它选择CheckBoxList
的第1项,但所有其他CheckBoxList
的第1项也会被选中。知道为什么会发生这么神秘的事情吗?
所有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);
}
的项目数相同,每个项目的文本相同,价值相同。
动态填充它们,并从数据库中提取数据。
{{1}}
答案 0 :(得分:2)
这可能是因为你填充这些列表的方式......
我猜你要为每个列表添加相同的对象。因此,对任何对象的任何修改都会影响所有列表..
CheckBoxList.Items.Add(New ListItem(table.Rows[i]["FName"].ToString(),
table.Rows[i]["EmployeeID"].ToString()));
答案 1 :(得分:1)
Akram是正确的 - 所有CheckBoxList
不仅包含外观相同的项目,而且 中的每一项都相同。因此,为了直接回答您的问题,您需要为每个new ListItem
添加CheckBoxList
,例如:
for (int i = 0; i < table.Rows.Count; i++)
{
var firstName = table.Rows[i]["FName"].ToString()
var employeeId = table.Rows[i]["EmployeeID"].ToString();
CheckBoxList1.Items.Add(new ListItem { Text = firstName, Value = employeeId });
CheckBoxList2.Items.Add(new ListItem { Text = firstName, Value = employeeId });
CheckBoxList3.Items.Add(new ListItem { Text = firstName, Value = employeeId });
CheckBoxList4.Items.Add(new ListItem { Text = firstName, Value = employeeId });
CheckBoxList5.Items.Add(new ListItem { Text = firstName, Value = employeeId });
}
答案 2 :(得分:1)
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);
ListItem temp = new ListItem();
temp.Text = table.Rows[i]["FName"].ToString();
employeeid[i] = table.Rows[i]["EmployeeID"].ToString();
temp.Value = i.ToString();
CheckBoxList2.Items.Add(temp);
ListItem temp = new ListItem();
temp.Text = table.Rows[i]["FName"].ToString();
employeeid[i] = table.Rows[i]["EmployeeID"].ToString();
temp.Value = i.ToString();
CheckBoxList3.Items.Add(temp);
ListItem temp = new ListItem();
temp.Text = table.Rows[i]["FName"].ToString();
employeeid[i] = table.Rows[i]["EmployeeID"].ToString();
temp.Value = i.ToString();
CheckBoxList4.Items.Add(temp);
ListItem temp = new ListItem();
temp.Text = table.Rows[i]["FName"].ToString();
employeeid[i] = table.Rows[i]["EmployeeID"].ToString();
temp.Value = i.ToString();
CheckBoxList5.Items.Add(temp);
}