GridView пейджинг в UpdatePanel - PullRequest
       4

GridView пейджинг в UpdatePanel

0 голосов
/ 11 апреля 2011

У меня есть UpdatePanel и GridView в нем.У меня проблема с подкачкой страниц: когда я нажимаю кнопку Next, grdUsers_PageIndexChanging () не вызывается, поэтому страница остается 1, и если раньше я менял выбор в ddlPageSize, то теперь он возвращается к первоначальному выбору.Кроме того, если я нахожусь на первой странице, кнопка «Предыдущая» не отключается, и нажатие на нее вызывает ошибку Out of Range.Что я делаю неправильно?Спасибо.

<asp:UpdatePanel ID="upnlUsers" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" >
    <ContentTemplate>

        <div style="height:400px; width:1500px; overflow:auto;">

        <asp:GridView ID="grdUsers" runat="server" AllowPaging="True" ShowHeader="false" ShowFooter="true" 
            AutoGenerateColumns="false" CssClass="largegridview largegridview_td" 
            Width="1480px" Height="100%" PageSize="100" DataKeyNames="ID" EnableSortingAndPagingCallbacks="false" 
                onpageindexchanging="grdUsers_PageIndexChanging" 
                onrowdatabound="grdUsers_RowDataBound">
                <AlternatingRowStyle CssClass="alternatingrowstyle" />

                <Columns>
                     <asp:TemplateField HeaderText="User Name" SortExpression="Name">
                        <ItemTemplate>
                            <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Last Name" SortExpression="LastName">
                        <ItemTemplate>
                            <asp:Label ID="lblLastName" runat="server" Text='<%# Eval("LastName") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>                        
                    <asp:TemplateField HeaderText="First Name" SortExpression="FirstName">
                        <ItemTemplate>
                            <asp:Label ID="lblFirstName" runat="server" Text='<%# Eval("FirstName") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Email" SortExpression="Email">
                        <ItemTemplate>
                            <asp:Label ID="lblEmail" runat="server" Text='<%# Eval("Email") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>                        

                </Columns>

                <PagerStyle CssClass="pagerstyle" />
                <PagerTemplate>
                    <asp:Label ID="Label1" runat="server" Text="Show rows:" />
                    <asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="true" 
                        OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
                        <asp:ListItem Value="20" />
                        <asp:ListItem Value="50" />
                        <asp:ListItem Value="100" />
                    </asp:DropDownList>
                    &nbsp;
                    Page 
                    <asp:TextBox ID="txtGoToPage" runat="server" AutoPostBack="true" 
                        OnTextChanged="GoToPage_TextChanged" CssClass="gotopage" />
                    of
                    <asp:Label ID="lblTotalNumberOfPages" runat="server" />
                    &nbsp;
                    <asp:Button ID="btnPrev" runat="server" CommandName="Page" 
                        ToolTip="Previous Page" CommandArgument="Prev" CssClass="previous" />
                    <asp:Button ID="btnNext" runat="server" CommandName="Page" ToolTip="Next Page" 
                        CommandArgument="Next" CssClass="next" />                  
                </PagerTemplate>                      
            </asp:GridView>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

Ответы [ 3 ]

0 голосов
/ 11 апреля 2011

Согласен, я протестировал код, и grdUsers_PageIndexChanging () вызывается у меня.

0 голосов
/ 11 апреля 2011

Дорогой друг, они находятся в пейджинге сборки в виде сетки, если вы хотите свой собственный стиль пейджинга, тогда вам нужно реализовать свой пейджинг через класс PageDataSource.

Нажмите, чтобы посмотреть код

по этой ссылке вы узнаете, как реализовать разбиение на страницы в Datalist и Repeater таким же образом, как вы реализуете разбиение на страницы в виде сетки.Тогда никакое событие изменения индекса не будет запущено в виде сетки.

0 голосов
/ 11 апреля 2011

Я не думаю, что вы делаете что-то не так;он может на самом деле не запускать событие PageIndexChanged, а, вероятно, запускать событие RowCommand.Присоединитесь к событию ItemCommand, и оно получит событие.

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...