我正在使用MVC和我加载数据到一个ListView。一切工作正常,这里的观点:分页MVC项ListView
<%
Dim varDataSource As New iSAM.EntityiSAMRepository
ListViewDatos.DataSource = varDataSource.ListarCruceCertificadosPrecancelados
ListViewDatos.DataBind()
%>
<asp:ListView runat="server" ID="ListViewDatos">
<LayoutTemplate>
<table id="ListViewDatos" class="tablesorter" style="width:100%">
<thead>
<tr>
<th style="width:2%">
</th>
<th style="width:6%" align="left">
<a href="#" style="text-decoration:none"><font color="black">Póliza</font></a>
</th>
</tr>
</thead>
<tbody>
<tr id="itemPlaceholder" runat="server" />
</tbody>
<tfoot>
<tr id="pager" align="center">
<td colspan="7" style="border-right: solid 3px #7f7f7f;">
<asp:Image ID="Image1" ImageUrl="~/Images/first.png" CssClass="first" ToolTip="Inicio" runat="server" />
<asp:Image ID="Image2" ImageUrl="~/Images/prev.png" CssClass="prev" ToolTip="Anterior" runat="server" />
<input type="text" class="pagedisplay" readonly="readonly" style="width:100px; text-align:center" />
<asp:Image ID="Image3" ImageUrl="~/Images/next.png" CssClass="next" ToolTip="Siguiente" runat="server" />
<asp:Image ID="Image4" ImageUrl="~/Images/last.png" CssClass="last" ToolTip="Fin" runat="server" />
<select class="pagesize">
<option selected="selected" value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</td>
</tr>
</tfoot>
</table>
</LayoutTemplate>
<ItemTemplate>
<%
Static varCount As Long = 0
Dim varID1 As Long = Model(varCount).ID1
Dim varID2 As Long = Model(varCount).ID2
varCount = varCount + 1
%>
<tr>
<td style="border-width:medium">
<%=Html.CheckBox("chkCancel_" & Val(varID1) & "_" & Val(varID2), False, Nothing)%>
</td>
<td>
<%#Eval("WhatEver")%>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<p>
<input type="submit" value="Cancel" id="cmdCancel" onclick="if(!confirm('Are you sure?')) return false;" />
</p>
我的问题是在控制器上,因为我需要恢复人复选框加载到ListView中,但只的Request.Form返回那些因分页显示的复选框,我的意思是,如果我使用10个项目的分页,那么Request.Form会得到10个复选框,正如我所说的,我有60个复选框(例如),我需要使用Request.Form或其他东西(也许是一个技巧:)获得60个复选框) 。 这里的控制器:
Function ListMyData(ByVal varErr As String) As ActionResult
Dim arrIDs(,) As String = Nothing
Dim varcount As Long = 0
For Each varItem In Request.Form
If InStr(varItem.ToString, "chkCancel") > 0 Then
If Request.Form(varItem) = "true,false" Then
ReDim Preserve arrIDs(1, varCount)
Dim varCode As String = Mid(varItem, InStr(varItem, "_") + 1)
arrIDs(0, varCount) = Mid(varCode, 1, InStr(varCode, "_") - 1)
arrIDs(1, varCount) = Mid(varCode, InStr(varCode, "_") + 1)
varCount = varCount + 1
End If
End If
Next
Return View()
End Function
谢谢。
不要骗自己,你正在使用MVC的思想。你使用的是经典的WebForms。与MVC无关。一旦从视图中移除包含'runat =“server”'的所有内容,您就会更接近MVC。 – 2010-11-15 22:13:39