如何向此GridView添加分页?
C#代码:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
错误
Specified argument was out of the range of valid values. Parameter name: index
答案 0 :(得分:0)
您再次需要在页面索引更改事件中。在这里你没有写过。
请参阅the link
myGridView.DataSource = your datasource here;
myGridView.PageIndex = e.NewPageIndex;
myGridView.DataBind();
答案 1 :(得分:0)
允许分页非常简单。像
那样调用PageIndexChanging
网格视图事件
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = Your datasource here;
GridView1.DataBind();
}
希望它对你有用..
答案 2 :(得分:0)
我认为我所做的是编写页面索引代码,然后在之后调用网格的actrual bind方法:
myGridView.PageIndex = e.NewPageIndex;
BindmyGridView();
其中
private void BindmyGridView()
{
myGridView.DataSource = lst; //where lst is the datasource
myGridView.DataBind();
}
你也看过这些链接:
答案 3 :(得分:0)
您需要使用可分页的数据源。最简单的方法是使用SqlDataSource
。
另请注意,PageIndex
从零开始。
如果你使用List
或Collection
等,它需要足够大,这是一个很好的浪费空间。基本上,如果您正在进行手动分页,并且使用List
,那么您将必须创建与结果的完整记录数一样大的List
,并且仅填写在适当的页面。不太实用,而且非常讨厌,但它很简单。
除了创建自己的可分页数据源之外,还有另一种更好的方法。您可以使用AllowCustomPaging
属性指定您已经传递分页数据。只需将VirtualItemCount
设置为记录计数,然后只传递DataSource
中的一个页面并像往常一样调用DataBind
。那应该做:))