我有一个包含CheckBoxList的Web用户控件。
MyListControl:
<asp:checkboxlist id="chkList" runat="server">
<asp:listitem id="option1" runat="server" value="Madrid" />
<asp:listitem id="option2" runat="server" value="Oslo" />
<asp:listitem id="option3" runat="server" value="Lisbon" />
</asp:checkboxlist>
我想检查在父页面上提交表单之前检查哪些项目。我希望它能像这样工作:
myParentPage:
MyUserControlInstance.chkList.Items.Count
如何从父页面引用用户控件中的控件?
答案 0 :(得分:3)
将属性封装在控件后面的代码中。
public int GetLength
{
get
{
return CheckListBox.Items.Cast<ListItem>().Where(
i => i.Selected).ToList().Count;
}
}
现在替换
行MyUserControlInstance.chkList.Items.Count
MyUserControlInstance.GetLength
注意 - 请添加必要的命名空间,例如System.Collections.Generic
和System.Linq
答案 1 :(得分:2)
我会将此信息公开为用户控件上的公共属性,仅返回必要的信息,例如:
using System.Collections.Generic;
using System.Linq;
// ...
public IList<string> CheckedValues
{
get { return chkList.Items.Cast<ListItem>().Where(i => i.Selected).Select(i => i.Value).ToList(); }
}