Gridview Paging在添加pagesize时消失

时间:2018-01-04 13:25:36

标签: c# asp.net c#-4.0 gridview

我有一个GridView,我必须在页面加载时显示前200条记录,并且我在设计中设置了pagesize="200"。但是,当我赋予此属性时,Paging不会显示在GridView中,当我删除pagesize="200"属性时,分页会显示出来。

实际情况是当我删除pagesize="200"时,即使我的DataTable返回200条记录,我只能看到10条记录而不是200条记录。

我也启用了AllowPaging="true"

有人可以建议替代或任何输入吗?非常感谢。

HTML代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" ShowHeaderWhenEmpty="true" EmptyDataText="No Records Found" OnRowDataBound="GridView1_RowDataBound" AllowSorting="true" OnSorting="GridView1_Sorting"
                                    OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="true" CellPadding="1" PageSize="200"
                                    CellSpacing="1" BackColor="#e7e7e8" BorderColor="#e7e7e8" GridLines="Both" CssClass="GridViewStyleB" Font-Names="Calibri" Font-Size="10pt">

    <PagerSettings Mode="NumericFirstLast" PageButtonCount="4" FirstPageText="First" LastPageText="Last" Position="Top" Visible="true" />
    <PagerStyle BackColor="#e7e7e8" ForeColor="Black" HorizontalAlign="left"  />
    <HeaderStyle CssClass="RowStyle" ForeColor="Black" BackColor="#a9a9a9" Font-Underline="false" HorizontalAlign="Left" />
    <RowStyle CssClass="RowStyle" HorizontalAlign="Left" BorderColor="#E7E7E8" ForeColor="Black" />
    <AlternatingRowStyle CssClass="AlternatingRowStyle" BorderColor="#E7E7E8" ForeColor="Black" BackColor="#e7e7e8" />
    <EmptyDataRowStyle HorizontalAlign="Center" />
</asp:GridView>

代码背后:

protected void GridView1_PreRender(object sender, EventArgs e)
    {
        GridView gv = (GridView)sender;
        GridViewRow pagerRow = (GridViewRow)gv.TopPagerRow;
        GridView1.VirtualItemCount = totalRecords;
        if (pagerRow != null && pagerRow.Visible == false)
            pagerRow.Visible = true;
    }

UPDATE1:

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {            
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            GridView1.TopPagerRow.Visible = true;
            int totalRecords = DAL.GetRecordCount();
            GridView1.VirtualItemCount = totalRecords;
        }
    }

1 个答案:

答案 0 :(得分:1)

由于您只有一个页面,因此您需要强制使用&#34;它。 试试吧:

GridView1.BottomPagerRow.Visible=true

GridView1.VirtualItemCount = totalRecords;

并且还更改了属性 AllowCustomPaging http://www.c-sharpcorner.com/UploadFile/99bb20/custom-paging-with-gridview-control-in-Asp-Net-4-5/