如何在 asp.net checkboxlist 中设置多个选定的值
Posted
技术标签:
【中文标题】如何在 asp.net checkboxlist 中设置多个选定的值【英文标题】:How to set multiple selected values in asp.net checkboxlist 【发布时间】:2010-10-22 01:00:59 【问题描述】:我有一个绑定到 linq to sql 数据源的 asp.net 复选框列表,当我在页面加载事件上检查 CheckBoxList 的项目计数时,它是 0。我希望能够在我的复选框列表上设置选定的项目在这里但不能。
数据源的 selected 事件在页面加载后触发。如果是这种情况,如何在我的列表中设置所选项目?
如果我将 SelectedValue 设置为一个值,它只会显示最后一个被选中的值,而不是所有被选中的值。如何在页面加载事件的复选框列表中选择多个值?
【问题讨论】:
【参考方案1】:听起来像是一个页面生命周期 - 数据绑定问题。
你真的应该看看this question的(答案)。
【讨论】:
【参考方案2】:我使用DataBound事件来选择设置选中项。
【讨论】:
【参考方案3】:我知道这是一篇旧帖子,但我最近遇到了同样的问题。
要选择 DataBound CheckBoxList 的多个项目,请处理 DataBound 事件并循环遍历 Items 集合,根据需要在每个项目上单独设置 Selected 属性。
设置控件的 SelectedValue 属性只检查最后一项。
foreach (ListItem item in MyCheckBoxList.Items)
item.Selected = ShouldItemBeSelectedMethod(item.Value);
【讨论】:
不要忘记包含 System.Web.UI.WebControls 命名空间【参考方案4】:public void SetValueCheckBoxList(CheckBoxList cbl, string sValues)
if (!string.IsNullOrEmpty(sValues))
ArrayList values = StringToArrayList(sValues);
foreach (ListItem li in cbl.Items)
if (values.Contains(li.Value))
li.Selected = true;
else
li.Selected = false;
private ArrayList StringToArrayList(string value)
ArrayList _al = new ArrayList();
string[] _s = value.Split(new char[] ',' );
foreach (string item in _s)
_al.Add(item);
return _al;
谢谢, slnavn2000
【讨论】:
【参考方案5】:我用的不错的方法:
private void SetCheckBoxListValues(CheckBoxList cbl, string[] values)
foreach (ListItem item in cbl.Items)
item.Selected = values.Contains(item.Value);
【讨论】:
这将引发错误,除非您有: using System.Linq; 对我来说,cbl.Items 在 Page_Load 处是空的。【参考方案6】:set checkboxlist 从列表中选择项目:
List<int> yourlist;
//fill yourlist
foreach (ListItem item in checkboxlist.Items)
if (yourlist.Contains(int.Parse(item.Value.ToString())))
item.Selected = true;
【讨论】:
【参考方案7】:假设您的值是字符串数组。那我就这样做了
foreach (ListItem li in ctrl.Items)
li.Selected = Array.Exists(values, x => x == li.Value);
【讨论】:
以上是关于如何在 asp.net checkboxlist 中设置多个选定的值的主要内容,如果未能解决你的问题,请参考以下文章
jquery 如何获取asp.net控件 CheckBoxList 中 选中的值?
如何将 CSS 应用于 ASP.NET CheckBoxList 控件的内部元素
为啥被删除:ASP.NET MVC CheckBoxList(没有 MVCContrib)
使用 jQuery AJAX 填充 ASP.Net CheckBoxList ClientSide