如何从asp中检索多个选定的值:checkbox .net c#

时间:2011-06-27 07:01:30

标签: c# asp.net .net webforms

有谁知道如何从asp中检索多个选定值:复选框.net c#?

实施例: 我是.net c#的新手,我有以下代码,但我不知道如何从.net获取多个选定的值c#

<tr>   
    <th class="graytext r">Add Test:</th>
    <td>
        <asp:CheckBoxList ID="Test" runat="server" DataSourceID="dsTest" CssClass=""
            DataValueField="employeeid" DataTextField="fullname" 
            AppendDataBoundItems="false" >
            <asp:ListItem></asp:ListItem>
        </asp:CheckBoxList>  
        <asp:SqlDataSource ID="dsTest" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SmartStaffConnectionString %>"
            SelectCommand="app_dsTest_select" SelectCommandType="StoredProcedure">
        </asp:SqlDataSource>
    </td>
</tr>  

6 个答案:

答案 0 :(得分:5)

使用以下内容:

for (int i=0; i<checkboxlist1.Items.Count; i++)
{
    if (checkboxlist1.Items[i].Selected)
    {
        Message.Text += checkboxlist1.Items[i].Text + "<br />";
    }
}

请参阅CheckBoxList Class

答案 1 :(得分:4)

最简单的方法是:

foreach (ListItem item in myCheckboxList.Items)
{
  if (item.Selected)
  {
    // do something with this item
  }
}

答案 2 :(得分:1)

尝试listitem.Selected属性,如下所示

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
    Label1.Text = string.Empty;

    foreach (ListItem listitem in CheckBoxList1.Items)
    {
        if (listitem.Selected)
            Label1.Text += listitem.Text + "<br />";
    }
}

答案 3 :(得分:1)

foreach (ListItem item in myCheckboxList.Items)
{
  if (item.Selected)
  {
    //Your code goes here
  }
}

答案 4 :(得分:1)

这是一个旧线程,但是使用.NET 4.5(不确定以前的版本是否有效),您可以使用LINQ来执行此操作:

IEnumerable<ListItem> selectedItems = myCheckboxList.Items.Cast<ListItem>().Where(x => x.Selected);

答案 5 :(得分:0)

您必须遍历Items

请参阅CheckBoxList Class

要确定检查了哪些项目,请遍历该集合并测试列表中每个项目的Selected属性。