zoukankan      html  css  js  c++  java
  • GridView分页的实现 ASP.NET c#(转)特好用

    要在GridView中加入

    //实现分页

    AllowPaging="true"

    //一页数据10行

     PageSize="10"

    // 分页时触发的事件
    OnPageIndexChanging="gvwDesignationName_PageIndexChanging"

    在服务器事件里

    复制代码
    protectedvoid gvwDesignationName_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
    gvwDesignationName.PageIndex
    =e.newIndex;

    bingDesignatioonName();
    }
    复制代码

    这里我给出一个通用显示分页的模板(网上搜的,自己给出注释)


    <PagerTemplate>
                    当前第:
                    
    //((GridView)Container.NamingContainer)就是为了得到当前的控件
                    <asp:Label ID="LabelCurrentPage" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageIndex + 1 %>"></asp:Label>
                    页
    /共:
                    
    //得到分页页面的总数
                    <asp:Label ID="LabelPageCount" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageCount %>"></asp:Label>
                    页
                     
    //如果该分页是首分页,那么该连接就不会显示了.同时对应了自带识别的命令参数CommandArgument
                    <asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"
                        Visible
    ='<%#((GridView)Container.NamingContainer).PageIndex != 0 %>'>首页</asp:LinkButton>
                    
    <asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev"
                        CommandName
    ="Page" Visible='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'>上一页</asp:LinkButton>
                   
    //如果该分页是尾页,那么该连接就不会显示了
                    <asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"
                        Visible
    ='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>下一页</asp:LinkButton>
                    
    <asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"
                        Visible
    ='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>尾页</asp:LinkButton>
                    转到第
                    
    <asp:TextBox ID="txtNewPageIndex" runat="server" Width="20px" Text='<%# ((GridView)Container.Parent.Parent).PageIndex + 1 %>' />
                    
    //这里将CommandArgument即使点击该按钮e.newIndex 值为3 
                    <asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="-2"
                        CommandName
    ="Page" Text="GO" />
                
    </PagerTemplate>

    对应该事件中代码为


     protected void gvwDesignationName_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            
    // 得到该控件
            GridView theGrid = sender as GridView;
            
    int newPageIndex = 0;
            
    if (e.NewPageIndex==-3)
            {
                
    //点击了Go按钮
                TextBox txtNewPageIndex = null;

                
    //GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow
                GridViewRow pagerRow = theGrid.BottomPagerRow;
                
                
    if (pagerRow != null)
                {
                    
    //得到text控件
                    txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex"as TextBox;    
                }
                
    if ( txtNewPageIndex!= null)
                {
                    
    //得到索引
                    newPageIndex = int.Parse(txtNewPageIndex.Text) - 1
                }
            }
            
    else
            { 
                
    //点击了其他的按钮
                newPageIndex = e.NewPageIndex;
            }
            
    //防止新索引溢出
            newPageIndex = newPageIndex < 0 ? 0 : newPageIndex;
            newPageIndex 
    = newPageIndex >= theGrid.PageCount ? theGrid.PageCount - 1 : newPageIndex;
            
            
    //得到新的值
            theGrid.PageIndex = newPageIndex;
            
             
    //重新绑定
            bingDesignatioonName();
        }
  • 相关阅读:
    pat甲级 1155 Heap Paths (30 分)
    pat甲级 1152 Google Recruitment (20 分)
    蓝桥杯 基础练习 特殊回文数
    蓝桥杯 基础练习 十进制转十六进制
    蓝桥杯 基础练习 十六进制转十进制
    蓝桥杯 基础练习 十六进制转八进制
    51nod 1347 旋转字符串
    蓝桥杯 入门训练 圆的面积
    蓝桥杯 入门训练 Fibonacci数列
    链表相关
  • 原文地址:https://www.cnblogs.com/hfzsjz/p/3178384.html
Copyright © 2011-2022 走看看