当我将GridView分页设置为true时,看不到Page2,3,..

时间:2012-10-09 10:51:07

标签: asp.net

我将Gridview的AllowPaging设置为True,当记录多个页面时我可以看到页面的编号(1,2,..)但是当我点击数字时看不到其他页面(Page2,3) ,...)和页面不会改变

我在DataBind()事件中使用PageIndexChanging但是当我点击数字时我看不到GridView

2 个答案:

答案 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();
    }