ASP.NET C # - Как установить открытое свойство для CheckBoxList внутри UserControl?

2

У меня возникли проблемы с этим. Если у меня есть checkboxlist внутри usercontrol, как мне пройти (или проверить, действительно), какие флажки отмечены в списке?

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

Теги:
user-controls
properties
checkboxlist

2 ответа

3
Лучший ответ

На своей странице вы можете сделать

var checkboxes = (CheckBoxList)userControl1.FindControl("checkBoxList1");

Но лучшим решением в моей голове было бы разоблачить проверенные элементы через свойство или метод.

В пользовательском управлении

public string[] CheckedItems {
    get {
        List<string> checkedItems = new List<string>();
        foreach (ListItem item in checkbox1.Items)
            checkedItems.Add(item.Value);

        return checkedItems.ToArray();
    }
}

Затем на странице

var checkedItems = userControl1.CheckedItems; 

Вы также можете просто вернуть checkbox1.Items в свойство, но это не очень хорошая инкапсуляция.

  • 0
    Хорошо, это то, что я хочу сделать - выставить проверенные элементы через свойство.
  • 0
    Я изменил свой код, чтобы использовать свойство вместо метода.
Показать ещё 1 комментарий
1

Если вы используете .net 3.5, вы можете создать свойство readonly, которое использует LINQ для возврата IList только выбранных значений:

  public IList<string> SelectedItems{
       get {
          return checkbox1.Items.Cast<ListItem>.Where(i => i.Selected).Select(j => j.Value).ToList();
       }

    }
  • 0
    Только с помощью .net 3.0 = \

Ещё вопросы

Сообщество Overcoder
Наверх
Меню