在条件下从复选框列表中选择复选框

时间:2011-04-18 12:40:17

标签: asp.net checkbox checkboxlist

我有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的列表。

1 个答案:

答案 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。您可能还希望在数据库中按位更改“是”。合作会更安全。如果有人写“真”而不是“是”怎么办?

我希望它有所帮助。如果您有任何疑问,请不要犹豫。