Gridview Paging在添加pagesize时消失

问题描述 投票:2回答:1

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

实际情况是当我删除pagesize="200"时我只能看到10条记录而不是200条,即使我的DataTable返回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;
        }
    }
c# asp.net c#-4.0 gridview
1个回答
1
投票

由于您只有一个页面,因此需要“强制”它。试试吧:

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/

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.