Как установить несколько выбранных значений в asp.net checkboxlist - PullRequest
10 голосов
/ 27 апреля 2009

У меня есть список флажков asp.net, связанный с источником данных linq to sql, и когда я проверяю количество элементов моего CheckBoxList в событии загрузки страницы, оно равно 0. Я хочу иметь возможность устанавливать выбранные элементы в моем списке флажков здесь, но не могу.

Выбранное событие источника данных срабатывает после загрузки страницы. Если это так, как я могу установить выбранные элементы в моем списке?

Если я установил значение SelectedValue на значение, оно отображает только последнее выбранное значение вместо всех выбранных значений. Как я могу выбрать несколько значений в своем списке флажков в событии загрузки страницы?

Ответы [ 6 ]

9 голосов
/ 17 марта 2010

Я знаю, что это старый пост, но у меня недавно была такая же проблема.

Чтобы выбрать несколько элементов в DataBound CheckBoxList, обработайте событие DataBound и выполните цикл по коллекции «Элементы», устанавливая свойство Selected отдельно для каждого элемента, как требуется.

Установка свойства SelectedValue элемента управления проверяет только последний элемент.

 foreach (ListItem item in MyCheckBoxList.Items)
 {
     item.Selected = ShouldItemBeSelectedMethod(item.Value);
 }
5 голосов
/ 24 декабря 2014

Хороший метод, которым я пользуюсь:

 private void SetCheckBoxListValues(CheckBoxList cbl, string[] values)
        {
            foreach (ListItem item in cbl.Items)
            {
                item.Selected = values.Contains(item.Value);
            }
        }
3 голосов
/ 12 апреля 2010

public void SetValueCheckBoxList (CheckBoxList cbl, строка sValues) { if (! string.IsNullOrEmpty (sValues)) {
Значения ArrayList = StringToArrayList (sValues);
foreach (ListItem li в cbl.Items) { if (values.Contains (li.Value)) li.Selected = true; еще li.Selected = false;
}
} }

private ArrayList StringToArrayList(string value)
        {
            ArrayList _al = new ArrayList();
            string[] _s = value.Split(new char[] { ',' });

            foreach (string item in _s)
                _al.Add(item);

            return _al;
        }

Спасибо, slnavn2000

1 голос
/ 29 апреля 2009

Я использовал событие DataBound для выбора, чтобы установить выбранные элементы.

1 голос
/ 27 апреля 2009

Походит на жизненный цикл страницы - вопрос привязки данных.

Вы действительно должны взглянуть (ответы на вопросы) на этот вопрос .

0 голосов
/ 17 февраля 2016

установить флажок списка выбранных элементов из списка:

        List<int> yourlist;
        //fill yourlist
        foreach (ListItem item in checkboxlist.Items)
        {
            if (yourlist.Contains(int.Parse(item.Value.ToString())))
                item.Selected = true;                
        }
...