最近刚接到网站的任务要做个“人员信息管理系统”,由于才接触.net不久,所以也是一边学习一边制作,各种Geogle,百度之后终于还是搞定了,虽然这个过程比较艰辛,不过总结一下自己还是成长了不少,如下是我在使用GridView分页控件时候的一点心得,希望能够帮助更多像我一样的小白!

1.      GridView本身是带分页功能的,这个很简单,我自己用的是VS2010,只要在GridView属性里面的AllowPaging修改为True,就可以了,

winform DevExpress 的gridcontrol 如何分页_server

这里简单介绍一下分页各个属性的意思(嘿嘿,这里主要是给第一次用的小白讲的,各位大神见谅),PageIndex是GridView初始界面的所在索引,我这里设置其为0,那么我的G控件则是从第一页开始显示的,如果填1,那么就是第二页,以此类推。。。PageSize是每页显示的数据的条数,我这里设置为10 ,那么一页中将显示10条数据,接下来我们看PageSetting,将它展开可以看到:

winform DevExpress 的gridcontrol 如何分页_textbox_02

真的很简单,只要会些英语都可以知道,在那个Mode里面我们可以选择分页时的样式,Numeric是数字,还有其他样式,这个自己选择的试一下就知道了,不过有一个问题我至今也没有搞定,还希望有大神能够给我解疑,就是我在选择FirstPageImageUrl和LastPageImageUrl时,打开文件夹是看不到图片的,如图

winform DevExpress 的gridcontrol 如何分页_asp_03

不过这个问题还不至于让项目陷入僵局,将就将就也还是可以的,毕竟基本的分页功能实现了,接下里就是后台代码了:其中PageIndexChange和PageIndexChanging事件都在gridview控件的事件里,找到双击添加代码即可,这里,第一个方法就算完成了,但是我们能够明显的感觉到这个方法局限性很大,不够美观,总之除了实现了分页的功能以外别的都不怎么给力啊,那么接下来我们来看看第二种方法:

首先,要使用这种方法你需要在Gridview任务界面选择,编辑模版

winform DevExpress 的gridcontrol 如何分页_任务_04

然后选择最下面的PagerTemplate,在这个界面你就可以自由构造你的分页界面了,这个方法我也是从网上找的,那么就以网上给的一个例子来说,具体效果如图:

winform DevExpress 的gridcontrol 如何分页_asp_05

和尾页是LinkButton控件,翻页按钮是Button控件,都很简单,具体前台代码如下:

<PagerTemplate> 
                 <br />         
          <asp:LinkButton ID="lbnFirst" runat="Server" Text="首页"   
                     Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'  
                     CommandName="Page" CommandArgument="First" Font-Bold="True"  
                     Font-Names="Constantia" Font-Underline="False" ></asp:LinkButton> 
                 <asp:Button ID="Button7" runat="server"  
                     Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'  
                     CommandName="Page" CommandArgument="Prev" BackColor="#1967F5"  
                     Font-Bold="True" ForeColor="White" Height="21px" Text="<"  
                     Width="31px" /> 
          <asp:Label ID="lblPage" runat="server"  
                     Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1)  + "页/共" + (((GridView)Container.NamingContainer).PageCount) + "页" %>'  
                     Font-Bold="True"></asp:Label>  
                 <asp:Button ID="Button8" runat="server"   
                     Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'  
                     CommandName="Page" CommandArgument="Next" BackColor="#1967F2" Font-Bold="True"  
                     ForeColor="White" Height="21px" Text=">" Width="31px"  /> 
          <asp:LinkButton ID="lbnLast" runat="Server" Text="尾页"    
                     Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'  
                     CommandName="Page" CommandArgument="Last" Font-Bold="True"  
                     Font-Underline="False" ></asp:LinkButton> 
          到第<asp:TextBox runat="server" ID="inPageNum" Height="21px" Width="107px"></asp:TextBox>页 <asp:Button ID="Button1"  
                     CommandName="go" runat="server" BackColor="#3399FF" Font-Bold="True"  
                     Font-Names="Algerian" ForeColor="Black" Text="Go" /> 
          <br /> 
      </PagerTemplate>

其实只是简单的托几个控件之后补充上相应的代码即可,如果想要其他样式还可以自定义托其他控件,原理和上面是一样的,后台代码如下:

protected  void GridView1_PageIndexChanging(object sender, GridViewPageEventArgse)
        {
            
            GridView1.PageIndex =e.NewPageIndex;
            DataBaseConn();
TextBox tb = (TextBox)GridView1.BottomPagerRow.FindControl("inPageNum");
            tb.Text = (GridView1.PageIndex +1).ToString();
        }
protected  void GridView1_RowCommand(objectsender,  GridViewCommandEventArgs
        {
if(e.CommandName ==  "go")
            {
try
                {
TextBoxtb = (TextBox)GridView1.BottomPagerRow.FindControl("inPageNum");
int num =  Int32.Parse(tb.Text);
GridViewPageEventArgsee = new GridViewPageEventArgs(num- 1);
null, ee);
                }
catch{ }
            }
        }

这样,分页就完成了,当然在这之前可不要忘了把AllowPaging先设为True!