Wineo
Wineo

Reputation: 37

ASP.net gridview paging index disappear when i change the page index

this is my code : when i change the index of pager i get the right data but the pager footer disapear :

<asp:GridView ID="GridView1" runat="server" PageSize="4" AllowPaging="true"     AllowSorting="true" AutoGenerateColumns="false" OnRowEditing="GridView1_RowEditing" DataKeyNames="id" OnRowCancelingEdit="GridView1_RowCancelingEdit" AlternatingRowStyle-CssClass="eventRowStyle" OnPageIndexChanging="GridView1_PageIndexChanging" OnPageIndexChanged="GridView1_PageIndexChanged">

Codebehind :

protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
        {
            GridViewDBEntities model = new GridViewDBEntities();
            var query = from p in model.userTbls select p;
            GridView1.DataSource = query;
            GridView1.DataBind();
        }
    }

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridViewDBEntities model = new GridViewDBEntities();
    var query = (from p in model.userTbls orderby p.id ascending select p).Skip((e.NewPageIndex) * GridView1.PageSize).Take(GridView1.PageSize);
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataSource = query;
    GridView1.DataBind();
}

Upvotes: 0

Views: 3153

Answers (1)

Suraj Singh
Suraj Singh

Reputation: 4059

You can force your Pager to remain visible !

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
    GridView1.BottomPagerRow.visible = True 

BTW you have already defined pageSize and set Paging to true so i think this will do

    protected void Page_Load(object sender, EventArgs e)
   {
        if (!IsPostBack)
        {
           BindGrid();

        }
    }
       private void BindGrid()
        {
            GridViewDBEntities model = new GridViewDBEntities();
            var query = from p in model.userTbls select p;
            GridView1.DataSource = query;
            GridView1.DataBind();
        }

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
  //  GridViewDBEntities model = new GridViewDBEntities();
   // var query = (from p in model.userTbls orderby p.id ascending select //p).Skip((e.NewPageIndex) * GridView1.PageSize).Take(GridView1.PageSize);
    GridView1.PageIndex = e.NewPageIndex;
   // GridView1.DataSource = query;
    //GridView1.DataBind();
     BindGrid();
}

Removing !IsPostback will cause problems later if you have to implement some functionality where you have to edit grid or insert records , Either way better will be to create a Bind method and use it according to requirements .

Upvotes: 1

Related Questions