最近刚接到网站的任务要做个“人员信息管理系统”,由于才接触.net不久,所以也是一边学习一边制作,各种Geogle,百度之后终于还是搞定了,虽然这个过程比较艰辛,不过总结一下自己还是成长了不少,如下是我在使用GridView分页控件时候的一点心得,希望能够帮助更多像我一样的小白!
1. GridView本身是带分页功能的,这个很简单,我自己用的是VS2010,只要在GridView属性里面的AllowPaging修改为True,就可以了,
这里简单介绍一下分页各个属性的意思(嘿嘿,这里主要是给第一次用的小白讲的,各位大神见谅),PageIndex是GridView初始界面的所在索引,我这里设置其为0,那么我的G控件则是从第一页开始显示的,如果填1,那么就是第二页,以此类推。。。PageSize是每页显示的数据的条数,我这里设置为10 ,那么一页中将显示10条数据,接下来我们看PageSetting,将它展开可以看到:
真的很简单,只要会些英语都可以知道,在那个Mode里面我们可以选择分页时的样式,Numeric是数字,还有其他样式,这个自己选择的试一下就知道了,不过有一个问题我至今也没有搞定,还希望有大神能够给我解疑,就是我在选择FirstPageImageUrl和LastPageImageUrl时,打开文件夹是看不到图片的,如图
不过这个问题还不至于让项目陷入僵局,将就将就也还是可以的,毕竟基本的分页功能实现了,接下里就是后台代码了:其中PageIndexChange和PageIndexChanging事件都在gridview控件的事件里,找到双击添加代码即可,这里,第一个方法就算完成了,但是我们能够明显的感觉到这个方法局限性很大,不够美观,总之除了实现了分页的功能以外别的都不怎么给力啊,那么接下来我们来看看第二种方法:
首先,要使用这种方法你需要在Gridview任务界面选择,编辑模版
然后选择最下面的PagerTemplate,在这个界面你就可以自由构造你的分页界面了,这个方法我也是从网上找的,那么就以网上给的一个例子来说,具体效果如图:
和尾页是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!