Как установить несколько выбранных значений в checkboxlist в asp.net

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

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

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

Ответ 1

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

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

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

 foreach (ListItem item in MyCheckBoxList.Items)
 {
     item.Selected = ShouldItemBeSelectedMethod(item.Value);
 }

Ответ 2

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

 private void SetCheckBoxListValues(CheckBoxList cbl, string[] values)
        {
            foreach (ListItem item in cbl.Items)
            {
                item.Selected = values.Contains(item.Value);
            }
        }

Ответ 3

public void SetValueCheckBoxList(CheckBoxList cbl, string sValues)
        {
            if (!string.IsNullOrEmpty(sValues))
            {                
                ArrayList values = StringToArrayList(sValues);             
                foreach (ListItem li in cbl.Items)
                {
                    if (values.Contains(li.Value))
                        li.Selected = true;
                    else
                        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

Ответ 4

Звучит как вопрос о жизненном цикле страницы - вопрос привязки данных.

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

Ответ 5

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

Ответ 6

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

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