0

これは私のコードです:ページャーのインデックスを変更すると、正しいデータが得られますが、ページャーのフッターは消えます:

<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">

コードビハインド:

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

1 に答える 1

1

Pager を強制的に表示したままにすることができます。

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

ところで、すでに pageSize を定義し、Paging を true に設定しているので、これでうまくいくと思います

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

!IsPostbackグリッドを編集したり、レコードを挿入したりする機能を実装する必要がある場合、削除すると後で問題が発生します。いずれにしても、Bindメソッドを作成し、要件に従って使用する方がよいでしょう。

于 2013-11-08T09:00:27.033 に答える