【问题标题】:custom paging on gridview controlgridview控件上的自定义分页
【发布时间】:2011-03-27 08:15:37
【问题描述】:

如果我删除 PagerSetting 或删除 PagerTemplate,下面的代码可以正常工作,所以如果我同时拥有 (PagerSettingPagerTemplate) 那么我的页码不显示。

我的问题是:如何在 Gridview 的底部同时显示 (PagerTemplate 和 PagerSetting)?请看下面的源代码。

<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>     
<PagerStyle CssClass="pager-row" />    
                    <RowStyle CssClass="row" />    
                    <PagerSettings Mode="NumericFirstLast" PageButtonCount="7" FirstPageText="«" LastPageText="»" />    
                   **<PagerTemplate>**     
                        <div style="float: left; margin-left: 12px;">    
                            <div style="float: left; margin: 4px 6px 0px 0px;">Page Size</div>    
                            <asp:DropDownList ID="ddlPageSizeChange" runat="server" AutoPostBack="true" OnSelectedIndexChanged="PageSizeChange">    
                                <asp:ListItem>15</asp:ListItem>    
                                <asp:ListItem>25</asp:ListItem>    
                                <asp:ListItem>50</asp:ListItem>    
                                <asp:ListItem>100</asp:ListItem>    
                            </asp:DropDownList>    
                        </div>    
                        <div class="gridCount" runat="server" id="divGridCount"><b>1</b> Items Found  </div>    
                    </PagerTemplate>      
</asp:GridView>  

更新 1:

我能够显示分页 1 2 3 4 5... 但问题是:我不能同时拥有 PagerSetting 和 PagerTemplate,如果我的 gridview 中同时拥有(PagerSetting 和 PagerTemplate)我的分页(1 2 3 4 5 ) 没有显示,如果我删除 PagerTemplate 比我的分页显示 (1 2 3 4 5...) 有意义吗?

更新:

这是我想要得到的:

>> 找到的总页数 80 - 第 1/80 页 - PageSize {15,25,50,10}(这将是一个下拉列表)

【问题讨论】:

    标签: c# asp.net gridview custompaging


    【解决方案1】:

    您可以使用以下代码来做到这一点

    1. 后端代码(gridview的行创建事件):

      protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
      {
      if (e.Row.RowType == DataControlRowType.Pager)
      {
          TableRow tr = (TableRow)e.Row.Cells[0].Controls[0].Controls[0];
          if (tr.Cells[1] != null && (((tr.Cells[1]).Controls[0]) is LinkButton))
          {
              LinkButton btnPrev = (LinkButton)(tr.Cells[1]).Controls[0];
              if (btnPrev.Text == "...")
              {
                  (((tr.Cells[1]).Controls[0]) as LinkButton).Text = "<";
              }
          }
          if (tr.Cells[tr.Cells.Count - 2] != null && (((tr.Cells[tr.Cells.Count - 2]).Controls[0]) is LinkButton))
          {
              LinkButton btnNext = (LinkButton)(tr.Cells[tr.Cells.Count - 2]).Controls[0];
              if (btnNext.Text == "...")
              {
                  (((tr.Cells[tr.Cells.Count - 2]).Controls[0]) as LinkButton).Text = ">";
              }
          }
      }
      

      }

    2. 并使用 pagersetting 作为:

      <PagerSettings  Mode="NumericFirstLast" FirstPageText="<<"
      LastPageText=">>" />
      

    你会得到你的输出。 :)

    注意:别忘了设置网格的pageSizeAllowPaging="true"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2011-04-22
      • 1970-01-01
      • 2012-06-07
      • 2011-01-24
      • 1970-01-01
      相关资源
      最近更新 更多