是否有任何用于页面导航的html助手。例如。如果我要显示1000条记录,我想在过滤后的集合下显示上一页1 2 3 4 ...等下一条链接。
有人知道那里有什么吗?
答案 0 :(得分:3)
如果要从JSON数据创建数据表,我强烈推荐YUI(Yahoo UI Library)DataTable组件(http://developer.yahoo.com/yui/datatable/)。它可以很好地进行分页,您可以选择将整个记录集返回到开始,然后通过所有客户端进行分页或从服务器返回分页集。
可能不适合你的情景,但我想我会提到它。
答案 1 :(得分:1)
答案 2 :(得分:0)
我的Dynamic Data for MVC sample application中有一个分页网格,但网格是手工渲染的。数据使用的是PagedList,它来自Rob Conery(反过来我觉得它来自ScottGu)。
我一直在考虑对于MVC来说,分页网格助手的外观可能是什么......
答案 3 :(得分:0)
到目前为止,我为分页所做的是创建一个Pager控件, 它需要一个分页URL,更新的html元素id,页码,页面大小和总计数。
分页URL的格式为controller / action,其中操作返回一个html字符串(呈现的数据页面)
寻呼机会为页面添加一个javascript链接列表。这些链接调用基于jQuery的ajax函数,该函数访问分页URL。每次单击页面都会使用ajax调用的结果替换html元素的当前内容。 像这样:
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会发布到分页网址,因此操作需要执行以下操作:
int.TryParse(Request.Params [“pageNumber”],out page) int.TryParse(Request.Params [“pageSize”],out size))
并将结果与您的数据访问组件一起使用以获取数据页面,将其呈现为html并将其返回。
希望有所帮助,如果需要,我可以扩展它。