从条件复选框列表中选择复选框
问题描述:
我有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个employees.no_of_listitems id为6,其是thses 6个雇员ID的列表。
答
用你的CheckBoxList创建一个列表。然后,用这样的代码替换代码:
请记住,此代码不是类型安全的。通常情况下,您希望避免在代码中使用字符串,并且y [“ISGoal”+ z]可能为空。如果是这样,应用程序将崩溃。这意味着你想进行检查以确保它没问题。试图在null上生成ToString()或Trim()会导致NullPointerException。您可能还想在数据库中逐个更改“是”。合作会更安全。如果有人写“真”而不是写呢?
我希望它有帮助。如果您有任何问题,请不要犹豫。
如何创建复选框列表? 我的应用程序是这样的,没有人写“是”或“否”。代码是这样的,如果复选框被选中,则在数据库中更新“是”。但是,你还有什么建议来处理这种情况。 – scooby 2011-04-18 13:06:47
'List checkboxLists = new List (); checkboxLists.Add(CheckBoxList1); ...' –
2011-04-18 15:31:31
通过在代码中写入YES或NO,可以毫无理由地在数据库中使用更多的空间。有一点会使用更少的空间,是一个更好的主意。通过列出CheckBoxList列表,您可以在每个列表上循环,而不是复制并粘贴您在问题中发布的所有代码。 – 2011-04-18 15:33:25