如何在asp.net中查找复选框列表是不是被选中

Posted

技术标签:

【中文标题】如何在asp.net中查找复选框列表是不是被选中【英文标题】:how to find if the check box list is selected or not in asp.net如何在asp.net中查找复选框列表是否被选中 【发布时间】:2011-12-22 00:37:10 【问题描述】:

如何在 asp.net 的复选框列表中获取选定的索引。我应该循环查找是否选择了列表框,或者我可以不这样做就知道。我想做这个

if(选中复选框列表) 做这个 别的 这样做

如何在asp.net中查找复选框列表是否被选中

int roleselected = ckl_EditRole.Items.SelectedIndex;

【问题讨论】:

【参考方案1】:

对于 CheckBoxList,SelectedIndex 将只为您提供 CheckBoxList 中的第一个选定索引。如果它不是-1,则选择了某些东西。这可能足以满足您的需求。

if( ckl_EditRole.SelectedIndex != -1 )

// Do Something

但是,由于 CheckBoxList 可以有多个选择,因此您可能希望遍历 Items 并查找选定的项。

foreach( ListItem li in ckl_EditRole.Items )

    if( li.Selected )
    
        // Do Something
    

【讨论】:

【参考方案2】:

如果您的意图是获取代码给出的选定复选框的索引,您也可以通过 Linq(不带 forloop)实现此目的,如下所示。

ckl_EditRoleItems.OfType<ListItem>().Where(p=>p.Selected).Select(p => ckl_EditRoleItems.Items.IndexOf(p)).ToArray<int>();

此语句将返回一个 int 数组,其中包含被选中复选框的索引。

【讨论】:

以上是关于如何在asp.net中查找复选框列表是不是被选中的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jquery 在 asp.net GridView 中查找所有选中复选框

在 asp.net 代码隐藏中默认选中的复选框列表项

回发时的 ASP.Net 复选框值错误?

查找是不是在 servlet 中选中复选框

asp.net中复选框列表中的滚动条

只允许选中一个复选框 - asp.net c#