我很難搞清楚這一點。如果我在一個usercontrol中有一個checkboxlist,我該如何循環(或者確實)在列表中檢查哪些框?ASP.NET C# - 如何設置UserControl中的CheckBoxList的公共屬性?
正如我在下面的評論中所說的,我想通過控件本身中的一個屬性來公開檢查的項目。
我很難搞清楚這一點。如果我在一個usercontrol中有一個checkboxlist,我該如何循環(或者確實)在列表中檢查哪些框?ASP.NET C# - 如何設置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的一個只讀屬性:
public IList<string> SelectedItems{
get {
return checkbox1.Items.Cast<ListItem>.Where(i => i.Selected).Select(j => j.Value).ToList();
}
}
只能使用.net 3.0 = \ – somacore 2009-10-28 20:23:12
對,這就是我想做的事 - 揭露檢查項目通過財產。 – somacore 2009-10-28 19:52:53
我改變了我的代碼來使用屬性而不是方法。 – Bob 2009-10-28 20:07:57
太棒了。謝謝! – somacore 2009-10-28 20:22:33