asp.net gridview分页

时间:2010-09-03 15:28:24

标签: asp.net gridview

如何使我的grdivew页面比硬编码最多5页更具动态性? 下面的代码工作正常,但限制是我可以显示多达5页因为我有5个linkbutons。如何使这段代码更具动态页码?

<asp:GridView ID="gvTable" runat="server" ShowHeader="true"      
  PageSize="5" AllowPaging="true" AllowSorting="true"      
  DataSourceID="myLinqDataSource" AutoGenerateColumns="false"      
  OnRowDataBound="GridView_DataBound">      
  <Columns>      
    <asp:BoundField DataField="Edited" HeaderText="Date" DataFormatString="{0:d}" />      
    <asp:BoundField DataField="Activity" HeaderText="Notes" />      
  </Columns>      
  <PagerTemplate>
                        <div style="float: left; margin-left: 7px; line-height: 22px;">
                            <div style="float: left;">
                                <asp:ImageButton CommandName="Page" CommandArgument="First" ToolTip="First Page"
                                    runat="server" ID="PagerFirstButton"   />
                                <asp:ImageButton ID="PagerPrevButton" CommandName="Page" CommandArgument="Prev" ToolTip="Previous Page"
                                    runat="server"  />
                            </div>
                            <div style="float: left;">
                                <div class="pagerNumber">
                                    <asp:LinkButton runat="server" ID="NumericPager1" CommandArgument="1" Text="1" CommandName="Page" />
                                </div>
                                <div class="pagerNumber">
                                    <asp:LinkButton runat="server" ID="NumericPager2" CommandArgument="2" Text="2" CommandName="Page" />
                                </div>
                                <div class="pagerNumber">
                                    <asp:LinkButton runat="server" ID="NumericPager3" CommandArgument="3" Text="3" CommandName="Page" />
                                </div>
                                <div class="pagerNumber">
                                    <asp:LinkButton runat="server" ID="NumericPager4" CommandArgument="4" Text="4" CommandName="Page" />
                                </div>
                                <div class="pagerNumber">
                                    <asp:LinkButton runat="server" ID="NumericPager5" CommandArgument="5" Text="5" CommandName="Page" />
                                </div>
                            </div>
                            <div style="float: left;">
                                <asp:ImageButton ID="PagerNextButton" CommandName="Page" CommandArgument="Next" ToolTip="Next Page"
                                    runat="server" />
                                <asp:ImageButton ID="PagerLastButton" CommandName="Page" CommandArgument="Last" ToolTip="Last Page"
                                    runat="server"  />
                            </div>
                        </div>
                        <div style="float: left; margin-left: 12px;">
                            <div style="float: left; margin: 4px 6px 0px 0px;">
                                Page Size</div>
                                                     </div>
                        <div class="gridCount" runat="server" id="divGridCount">
                            <b>1</b> Items Found &nbsp;</div>
  </PagerTemplate>  

</asp:GridView>

3 个答案:

答案 0 :(得分:0)

在web.config文件中,添加一个类似GridViewPageSize的参数。 然后在您的代码中写下以下内容:

gvTable.PageSize= int.Parse(ConfigurationManager.AppSettings["GridViewPageSize"]);

您需要导入ConfigurationManager类的命名空间System.Configuration。

答案 1 :(得分:0)

此问题有两种解决方案

首先是构建你的寻呼机控件并覆盖渲染方法。 另一个解决方案是在gridview中实现IPageableItemContainer然后使用DataPager控件。 检查以下链接以获取最新解决方案:

http://www.c-sharpcorner.com/uploadfile/nipuntomar/datapagergridview08012008123240pm/datapagergridview.aspx

答案 2 :(得分:0)

这是我能够实现的目标:

  <PagerStyle HorizontalAlign="Left" CssClass='header' BackColor="#E5EAF3" ForeColor="Black" />
<PagerSettings Mode="NumericFirstLast" />