我有5个复选框列表,每个复选框列表都有相同的6个复选框。
在某些情况下,我必须在page_Load
期间检查这些复选框列表。
我该怎么做。?
for (int j = 0; j < no_of_listitem; j++)
{
SqlCommand check = new SqlCommand("SELECT ISGoal1, ISGoal2,ISGoal3, ISGoal4,ISGoal5 FROM PRM2011_EMPLOYEE_GOAL WHERE EmployeeID = '" + employeeid[j] + "'", con);
SqlDataReader y = check.ExecuteReader();
while (y.Read())
{
if (null != y && y.HasRows)
{
string yes_or_no = y["ISGoal1"].ToString();
yes_or_no = yes_or_no.Trim();
if (yes_or_no == "Yes")
{
CheckBoxList1.Items[j].Selected = true;
}
//else CheckBoxList1.Items[j].Selected = false;
yes_or_no = y["ISGoal2"].ToString();
yes_or_no = yes_or_no.Trim();
if (yes_or_no == "Yes")
{
CheckBoxList2.Items[j].Selected = true;
}
//else CheckBoxList2.Items[j].Selected = false;
yes_or_no = y["ISGoal3"].ToString();
yes_or_no = yes_or_no.Trim();
if (yes_or_no == "Yes")
{
CheckBoxList3.Items[j].Selected = true;
}
//else CheckBoxList3.Items[j].Selected = false;
yes_or_no = y["ISGoal4"].ToString();
yes_or_no = yes_or_no.Trim();
if (yes_or_no == "Yes")
{
CheckBoxList4.Items[j].Selected = true;
}
//else CheckBoxList4.Items[j].Selected = false;
yes_or_no = y["ISGoal5"].ToString();
yes_or_no = yes_or_no.Trim();
if (yes_or_no == "Yes")
{
CheckBoxList5.Items[j].Selected = true;
}
//else CheckBoxList5.Items[j].Selected = false;
}
}
y.Close();
}
employeeid[]
包含6名员工的身份.no_of_listitems为6,这是6名员工ID的列表。
答案 0 :(得分:0)
创建一个包含CheckBoxList的列表。然后,用以下代码替换代码:
for(int z = 1; z <= checkboxLists.Count; z++)
{
checkboxLists[z].Items[j].Selected = y["ISGoal" + z].ToString().Trim() == "yes";
}
请记住,此代码不是类型安全的。通常,您希望避免在代码中使用字符串,而y [“ISGoal”+ z]可能为null。如果是,应用程序将崩溃。这意味着您要进行检查以确保它没问题。尝试在null上创建ToString()或Trim()将产生NullPointerException。您可能还希望在数据库中按位更改“是”。合作会更安全。如果有人写“真”而不是“是”怎么办?
我希望它有所帮助。如果您有任何疑问,请不要犹豫。