문제

나는 이것을 알아내는 데 어려움을 겪고있다. 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();
       }

    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top