是否有任何用于页面导航的 html 助手。例如。如果我有 1000 条记录要显示,我想显示过滤后的集合下的 Previous 1 2 3 4 ... etc Next 链接内容。
有人知道那里有什么吗?
是否有任何用于页面导航的 html 助手。例如。如果我有 1000 条记录要显示,我想显示过滤后的集合下的 Previous 1 2 3 4 ... etc Next 链接内容。
有人知道那里有什么吗?
如果您从 JSON 数据创建数据表,我强烈推荐 YUI(雅虎 UI 库)DataTable 组件(http://developer.yahoo.com/yui/datatable/)。它的分页非常好,您可以选择返回整个记录集以开始,然后在所有客户端分页或从服务器返回分页集。
可能不适合您的情况,但只是想我会提到它。
我的Dynamic Data for MVC 示例应用程序中有一个分页网格,但该网格是手工渲染的。数据使用 PagedList,它来自 Rob Conery(我认为他是从 ScottGu 那里得到的)。
我一直在考虑 MVC 的分页网格助手可能是什么样的......
到目前为止,我为分页所做的是创建一个 Pager 控件,它需要一个分页 url、用于更新的 html 元素 id、页码、页面大小和总数。
分页 url 的形式为控制器/动作,其中动作返回一个 html 字符串(呈现的数据页面)
寻呼机附加页面的 javascript 链接列表。这些链接调用一个基于 jQuery 的 ajax 函数,该函数会点击分页 url。每次页面单击都会将 html 元素的当前内容替换为 ajax 调用的结果。像这样的东西:
public string Render()
{
var buffer = new StringBuilder( 1000 );
buffer.AppendLine( @"<ul class=""datatable_pager"">" )
.AppendLine( "\t<li>Additional Pages:</li>" );
int numberOfPages = TotalItemCount % PageSize == 0 ? TotalItemCount / PageSize : TotalItemCount / PageSize + 1;
for( int i = 0; i < numberOfPages; i++ )
{
AppendPageLink( buffer, i );
}
buffer.AppendLine( "\t</ul>" );
AppendPagingJS( buffer );
return buffer.ToString( );
}
private void AppendPageLink( StringBuilder buffer, int i )
{
buffer.Append( "\t\t<li><a href=\"" )
.Append( PagingLink.Replace( "$PAGE$", i.ToString( ) ) )
.Append( "\">" )
.Append( i.ToString( ) )
.Append( "</a>" )
.AppendLine( "\t\t</li>" );
}
private void AppendPagingJS( StringBuilder buffer )
{
buffer.AppendLine( @"
<script type=""text/javascript"">
function page( page, size, updateElement )
{
$.post( '" + PagingUrl + @"',
{
pageNumber: page,
pageSize: size,
},
function(response)
{
$(""#"" + updateElement).html(response);
},
""html""
);
}
</script>" );
}
javascript 发布到分页 url,因此该操作需要执行以下操作:
int.TryParse(Request.Params["pageNumber"], out page) int.TryParse(Request.Params["pageSize"], out size))
并将结果与您的数据访问组件一起使用以获取数据页面,将其呈现为 html 并返回它。
希望有帮助,如果需要,我可以扩展它。