C# 检查listview中复选框的值

C# 检查listview中复选框的值,c#,.net,asp.net,listview,C#,.net,Asp.net,Listview,我有一个列表视图,里面有一个复选框字段,可以动态地设置id 我也有一个按钮,按下时需要检查是否有任何支票盒已检查,但我不知道如何做到这一点 你知道我该怎么做吗 谢谢 这是我的代码: <asp:ListView ID="ListView1" runat="server" DataKeyNames="Id" DataSourceID="EntityDataSource1" EnableModelValidation="True"> <ItemTemplate

我有一个列表视图,里面有一个复选框字段,可以动态地设置id

我也有一个按钮,按下时需要检查是否有任何支票盒已检查,但我不知道如何做到这一点

你知道我该怎么做吗

谢谢

这是我的代码:

<asp:ListView ID="ListView1" runat="server" DataKeyNames="Id"  
    DataSourceID="EntityDataSource1" EnableModelValidation="True"> 

    <ItemTemplate>
        <tr>
            <td class="firstcol">
                <input id='Checkbox<%# Eval("Id") %>' type="checkbox" />
            </td>
        </tr>
    </ItemTemplate>

    <LayoutTemplate>
       <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <th width="50" scope="col" class="firstcol">

                </th>
            </tr>
            <tr ID="itemPlaceholder" runat="server"></tr>
        </table>
        <asp:Button ID="btnDownload" runat="server" Text="Download" Height="26px" 
    onclick="btnDownload_Click" />
    </LayoutTemplate>
</asp:ListView>



protected void btnDownload_Click(object sender, EventArgs e)
{
   ???????
}

受保护的void btnDownload\u单击(对象发送方,事件参数e)
{
???????
}

免责声明:我更像是一名后端/wpf开发人员。可能有更优雅的解决方案,但这似乎是可行的

更改您的复选框id,使其不唯一(抱歉,这将中断w3c验证),并将其设置为runat server,并将复选框的值设置为数据源的id:

<ItemTemplate>
<tr>
  <td class="firstcol">
    <label runat="server"><%# Eval( "Id" ) %></label>
    <input id="MyCheckBox" value='<%# Eval("Id") %>'
           type="checkbox" runat="server" />
  </td>
</tr>
</ItemTemplate>
如果你想要一点灵气:

protected void btnDownload_Click( object sender, EventArgs e )
{
    var checkedCheckBoxes = ListView1.Items.Select( x => x.FindControl( "MyCheckBox" ) as HtmlInputCheckBox )
    .Where( x => x != null && x.Checked );

    // do stuff with checkedCheckBoxes
}
protected void btnDownload_Click( object sender, EventArgs e )
{
    var checkedCheckBoxes = ListView1.Items.Select( x => x.FindControl( "MyCheckBox" ) as HtmlInputCheckBox )
    .Where( x => x != null && x.Checked );

    // do stuff with checkedCheckBoxes
}