ASP.NET C #- USERCONTROL 내부의 CheckBoxList에 대한 공공 속성을 어떻게 설정합니까?
-
08-07-2019 - |
문제
나는 이것을 알아내는 데 어려움을 겪고있다. USERCONTROL 내부에 CheckBoxList가있는 경우 목록에서 어떤 상자를 확인하거나 실제로 확인합니까?
아래 의견에서 말했듯이, 나는 통제 자체의 속성을 통해 확인 된 항목을 노출시키고 싶습니다.
해결책
당신의 페이지에서 당신은 할 수 있습니다
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를 사용하는 경우 LINQ를 사용하여 선택한 값의 ILIST를 반환하는 ReadOnly 속성을 만들 수 있습니다.
public IList<string> SelectedItems{
get {
return checkbox1.Items.Cast<ListItem>.Where(i => i.Selected).Select(j => j.Value).ToList();
}
}
제휴하지 않습니다 StackOverflow