我想同时接受C#和VB.NET建议。
我有一个简单的ListView和DataPager,如下所示:
<asp:ListView ID="lvStudent" runat="server">
<LayoutTemplate>
<table id="TimeSheet" cellspacing="1" class="tablesorter">
<thead>
<tr>
<th>
ID#
</th>
<th>
<asp:LinkButton ID="lnkByName" runat="server">Name</asp:LinkButton>
</th>
<th>
<asp:CheckBox ID="selectAll" runat="server" OnClick="selectAll(this)"/>
</th>
</tr>
</thead>
<tbody>
<tr id="itemPlaceholder" runat="server" />
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td class="id">
<%#Eval("Id")%>
</td>
<td>
<%#Eval("Name")%>
<asp:HiddenField ID="hfId" runat="server" Value='<%#Eval("Id")%>' />
</td>
<td>
<asp:CheckBox ID="cbSelected" runat="server"/>
</td>
</ItemTemplate>
</asp:ListView>
<div>
<asp:DataPager ID="dpReport" runat="server"
PagedControlID="lvStudent" PageSize="20">
<Fields>
<asp:NextPreviousPagerField ShowFirstPageButton="True" ShowNextPageButton="False" />
<asp:NumericPagerField NumericButtonCssClass="dpTimeSheet" ButtonCount="50" ButtonType="Link" />
<asp:NextPreviousPagerField ShowLastPageButton="True" ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
</div>
如果没有分页,我可以像这样获得所有选中的CheckBox:
Public Function CountSelectedCheckBox() As Integer
Dim count As Integer = 0
Dim s As String
For Each i As ListViewDataItem In lvStudent.Items
Dim cb = CType(i.FindControl("cbSelected"), CheckBox)
If cb.Checked Then
count = count + 1
End If
Next
Return count
End Function
但是,如何计算ListView中具有分页功能的所有已检查CheckBox?
答案 0 :(得分:0)
我实现了类似你的功能。 尝试在session或ViewState中保存checkedIds。 当然,您需要为每个请求更新checkedIds。