我将Gridview的AllowPaging
设置为True,当记录多个页面时我可以看到页面的编号(1,2,..)但是当我点击数字时看不到其他页面(Page2,3) ,...)和页面不会改变
我在DataBind()
事件中使用PageIndexChanging
但是当我点击数字时我看不到GridView
答案 0 :(得分:0)
仅拨打GridView.DataBind()
是不够的。您还必须在PageIndex
中设置新的PageIndexChanging
:
void GridView1_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
// now get the DataSource(f.e. from database) and assign it
GridView1.DataBind();
}
另请注意,您不应在回发中将Page_Load
中的DataSource绑定到GridView,而应始终检查IsPostback
属性:
如果是后者,如果Page.IsPostback,请不要将GridView
中的page_load
绑定到它的DataSource。
void Page_Load(Object sender, EventArgs e)
{
if(!Page.IsPostback)
{
BindGridView(); // assuming this is the method where you databind the grid
}
}
答案 1 :(得分:0)
你不能只在PageIndexChanging中调用Databind,你需要像这样设置GridViews PageIndex
void GrdView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView x = ((GridView)sender);
if (e.NewPageIndex > -1 && e.NewPageIndex <= x.PageCount)
{
x.PageIndex = e.NewPageIndex;
}
GrdView.DataBind();
}