【发布时间】:2010-02-25 18:32:02
【问题描述】:
我的页面中有一个 CheckBoxList,并设置了 DataTextField 和 DataValueField 属性,是否有一个属性可用于指定指示是否应检查的属性?
我希望只设置数据源,而不需要任何代码来设置选中的属性。可能吗?
【问题讨论】:
标签: asp.net webforms checkboxlist
我的页面中有一个 CheckBoxList,并设置了 DataTextField 和 DataValueField 属性,是否有一个属性可用于指定指示是否应检查的属性?
我希望只设置数据源,而不需要任何代码来设置选中的属性。可能吗?
【问题讨论】:
标签: asp.net webforms checkboxlist
不,这是不可能的,因为该控件使用与其他控件(例如 ListBox、DropDownList、RadioButtonList 等)相同的绑定。
根据 MSDN:
在列表中设置多个选择 以编程方式循环控制 控件的 Items 集合和集合 每个的 Selected 属性 单个项目。
您可以实现 CheckListBox 的 OnDataBinding,然后查找每个绑定的项目,但在一个地方完成这一切可能会更容易。
【讨论】:
锁定这个例子:
string[] strUserRoles = Roles.GetRolesForUser("Ali");
foreach (var item in Roles.GetAllRoles())
{
chkRoleList.Items.Add(new ListItem()
{
Text = item,
Value = item,
Selected = strUserRoles.Contains(item)
});
}
注意:绑定CheckListBox时,必须设置每个Item的Text和Value。
【讨论】: