выбор флажка из списка флажков при условии - PullRequest
0 голосов
/ 18 апреля 2011

У меня есть 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 идентификаторов сотрудников.

1 Ответ

0 голосов
/ 18 апреля 2011

Создайте список с вашим CheckBoxList в нем.Затем замените код на что-то вроде этого:

for(int z = 1; z <= checkboxLists.Count; z++)
{
    checkboxLists[z].Items[j].Selected = y["ISGoal" + z].ToString().Trim() == "yes";
}

Помните, что этот код не является типобезопасным.Обычно вы хотите избегать использования строки в вашем коде, а y ["ISGoal" + z] может быть нулевым.Если это так, приложение будет зависать.Это означает, что вы хотите проверить, чтобы убедиться, что все в порядке.Попытка сделать ToString () или Trim () в null приведет к исключению NullPointerException.Возможно, вы также захотите поменять «да» в вашей базе данных постепенно.Было бы гораздо безопаснее работать.Что если кто-то напишет «правда» вместо «да»?

Надеюсь, это поможет.Если у вас есть какие-либо вопросы, не стесняйтесь.

...