У меня возникли проблемы с этим. Если у меня есть checkboxlist внутри usercontrol, как мне пройти (или проверить, действительно), какие флажки отмечены в списке?
Как я уже сказал в комментарии ниже, я хотел бы подвергать проверенные элементы через свойство в самом элементе управления.
На своей странице вы можете сделать
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
в свойство, но это не очень хорошая инкапсуляция.
Если вы используете .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();
}
}