C# 检查listview中复选框的值
我有一个列表视图,里面有一个复选框字段,可以动态地设置id 我也有一个按钮,按下时需要检查是否有任何支票盒已检查,但我不知道如何做到这一点 你知道我该怎么做吗 谢谢 这是我的代码: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
<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
}