пользовательский пейджинг на элементе управления gridview - PullRequest
4 голосов
/ 09 августа 2010

код ниже работает нормально, если я удаляю PagerSetting или удаляю PagerTemplate , поэтому, если у меня есть оба ( PagerSetting & PagerTemplate ), то номер моей страницы не отображается.

Мой вопрос: как я могу отобразить оба элемента (PagerTemplate и PagerSetting ) в нижней части Gridview? Пожалуйста, смотрите исходный код ниже.

<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, и если у меня есть оба (PagerSetting & PagerTemplate) в моей сетке просмотра моей пейджинговой страницы (1 2 3 4 5 ) не отображается, и если я удаляю PagerTemplate, то моя страница отображается (1 2 3 4 5 ...) имеет смысл?

UPDATE:

Вот что я пытаюсь получить:

<< <1 2 3 4 5 .....> >> Всего найдено страниц 80 - Страница 1/80 - Размер страницы {15 , 25,50,10} (это будет выпадающий список)

1 Ответ

1 голос
/ 25 сентября 2015

Вы можете сделать это, используя следующий код

  1. Код конца (строка, созданная событием просмотра сетки):

    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. и используйте настройку пейджеров как:

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

, вы получите свой вывод.:)

Примечание: не забудьте установить pageSize и AllowPaging = "true" сетки.

...