【发布时间】:2011-04-21 18:19:16
【问题描述】:
有 5 个目标和 5 名员工。每个目标都可以分配给这 5 名员工中的任意数量。所以我为每个目标设置了 5 个 CheckBoxList,每个 CheckBoxList 都有这 5 名员工的姓名作为项目。
我想从数据库中检索为哪些员工分配了哪些目标。我有以下代码:
List<CheckBoxList> checkboxlists = new List<CheckBoxList>();
checkboxlists.Add(CheckBoxList1);
checkboxlists.Add(CheckBoxList2);
checkboxlists.Add(CheckBoxList3);
checkboxlists.Add(CheckBoxList4);
checkboxlists.Add(CheckBoxList5);
for (int z = 1; z <= checkboxlists.Count; z++)
{
SqlCommand check = new SqlCommand("SELECT ISGoal1, ISGoal2,ISGoal3, ISGoal4,ISGoal5 FROM PRM2011_EMPLOYEE_GOAL WHERE EmployeeID = '" + employeeid[z - 1] + "'", con);
SqlDataReader y = check.ExecuteReader();
y.Read();
for (int j = 1; j <= 5; j++)
{
if (null != y && y.HasRows)
{
string yes_or_no = y["ISGoal" + j].ToString().Trim();
if (yes_or_no == "Yes")
{
checkboxlists[j-1].Items[z-1].Selected = true;
}
//else checkboxlists[j - 1].Items[z - 1].Selected = false;
}
}
y.Close();
}
我的问题是,即使我为员工选择了一个目标,与该特定员工对应的所有复选框都会被选中。为什么会这样?
相应地,如果我在发布的代码中注释掉 else 部分,并且如果未选择任何目标,则与该员工对应的所有复选框都未选中。请帮忙。
【问题讨论】:
-
问题清楚了吗??还是我需要再澄清一次。?
标签: asp.net checkbox checkboxlist sqlcommand