gridview里虽然有自动分页的功能,但是我们其实经常感觉不是很完善,比如,他没有页面直接跳转的功能,就是输入页数,然后跳转。还有他也没有显示记录的条数。其实,这些信息有时候是非常重要的。因此我们非常有必要实现这个功能。下面,我就讲述下如何实现自定义分页的。
一、首先要将gridview设置成可以分页,然后我们在增加如下代码:
gridview自定义分页<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="98%" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="20">
gridview自定义分页                        
<Columns>
gridview自定义分页                            
<asp:BoundField DataField="UserName" HeaderText="登陆用户名" >
gridview自定义分页                                
<ItemStyle CssClass="griditem" />
gridview自定义分页                                
<HeaderStyle CssClass="gridhead" />
gridview自定义分页                            
</asp:BoundField>
gridview自定义分页                            
<asp:BoundField DataField="Name" HeaderText="真实姓名">
gridview自定义分页                                
<ItemStyle CssClass="griditem" />
gridview自定义分页                                
<HeaderStyle CssClass="gridhead" />
gridview自定义分页                            
</asp:BoundField>
gridview自定义分页                            
<asp:BoundField DataField="PostName" HeaderText="职位" >
gridview自定义分页                             
<ItemStyle CssClass="griditem" />
gridview自定义分页                                
<HeaderStyle CssClass="gridhead" />
gridview自定义分页                            
</asp:BoundField>
gridview自定义分页                            
<asp:BoundField DataField="OrgName" HeaderText="组织" >
gridview自定义分页                             
<ItemStyle CssClass="griditem" />
gridview自定义分页                                
<HeaderStyle CssClass="gridhead" />
gridview自定义分页                            
</asp:BoundField>
gridview自定义分页                            
<asp:BoundField DataField="RoleName" HeaderText="角色" >
gridview自定义分页                             
<ItemStyle CssClass="griditem" />
gridview自定义分页                                
<HeaderStyle CssClass="gridhead" />
gridview自定义分页                            
</asp:BoundField>
gridview自定义分页                            
<asp:BoundField DataField="StateStr" HeaderText="当前状态" >
gridview自定义分页                             
<ItemStyle CssClass="griditem" />
gridview自定义分页                                
<HeaderStyle CssClass="gridhead" />
gridview自定义分页                            
</asp:BoundField>
gridview自定义分页                            
<asp:TemplateField HeaderText="操作">
gridview自定义分页                                
<ItemTemplate>
gridview自定义分页                                    
<asp:LinkButton ID="LinkButtonEdit" runat="server" CommandArgument='<%# Eval("UserID") %>' OnClick="LinkButtonEdit_Click">编辑</asp:LinkButton>
gridview自定义分页                                    
&nbsp;
gridview自定义分页                                    
<asp:LinkButton ID="LinkButtonDelete" runat="server" CommandArgument='<%# Eval("UserID") %>' OnClick="LinkButtonDelete_Click">删除</asp:LinkButton>
gridview自定义分页                                
</ItemTemplate>
gridview自定义分页                                 
<ItemStyle CssClass="griditem" />
gridview自定义分页                                
<HeaderStyle CssClass="gridhead" />
gridview自定义分页                            
</asp:TemplateField>
gridview自定义分页                        
</Columns>
gridview自定义分页                         
<EmptyDataTemplate>
gridview自定义分页                            
<table  border='0' cellpadding='0' cellspacing='0' style='border-right: coral 1px dotted;border-top: coral 1px dotted; border-left: coral 1px dotted; border-bottom: coral 1px dotted;background-color: #ffffff;width:200px;height:55px;'><tr><td align='center' style="height: 53px"><font color='coral'><b>没有任何数据<b></font></B></B></td></tr></table>
gridview自定义分页                        
</EmptyDataTemplate>
gridview自定义分页                        <PagerTemplate>
gridview自定义分页                            <table border="0" cellpadding="0" cellspacing="0" style="width: 99%; height: 15px">
gridview自定义分页                                <tr>
gridview自定义分页                                    <td style="width: 100px; height: 13px">
gridview自定义分页                                        </td>
gridview自定义分页                                    <td style="width: 100px; height: 13px">
gridview自定义分页                                        <div style="width: 286px; height: 7px; font-size:12px;">                                          
gridview自定义分页                                                        总共                                                 
gridview自定义分页                                                    <%=RecordCount%>                                                   
gridview自定义分页                                                        条记录 当前第                                                  
gridview自定义分页                                                        <%#((GridView)Container.NamingContainer).PageIndex+1%>/<%#((GridView)Container.NamingContainer).PageCount %>
gridview自定义分页                                                        页
gridview自定义分页                                             
gridview自定义分页                                        </div>
gridview自定义分页                                    </td>
gridview自定义分页                                    <td style="width: 100px; height: 13px">
gridview自定义分页                                        <div style="width: 252px; height: 8px; text-align: right">
gridview自定义分页                                            <asp:LinkButton ID="FirstPage" runat="server" CommandArgument="First" CommandName="Page"  Enable="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">第一页</asp:LinkButton>                                           
gridview自定义分页                                            <asp:LinkButton ID="PreviousPage" runat="server" CommandArgument="Prev" CommandName="Page" Enable="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上一页</asp:LinkButton>
gridview自定义分页                                             <asp:LinkButton ID="NextPage" runat="server" CommandArgument="Next" CommandName="Page" Enable="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下一页</asp:LinkButton>
gridview自定义分页                                            <asp:LinkButton ID="LastPage" runat="server" CommandArgument="Last" CommandName="Page" Enable="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">最后一页</asp:LinkButton>
gridview自定义分页                                            <asp:TextBox ID="TextGotoPage" runat="server" CssClass="pageeditbox"></asp:TextBox>
gridview自定义分页                                            <asp:Button ID="PageGo" causesvalidation="False" commandargument="-1" commandname="Page" runat="server" CssClass="pagebutton" Text="Go" />
gridview自定义分页                                        </div>
gridview自定义分页                                    </td>
gridview自定义分页                                    <td style="width: 100px; height: 13px">
gridview自定义分页                                        <div style="width: 266px; height: 1px">
gridview自定义分页                                        </div>
gridview自定义分页                                    </td>
gridview自定义分页                                </tr>
gridview自定义分页                            </table>
gridview自定义分页                        </PagerTemplate>       
gridview自定义分页                    </asp:GridView>

红色的部分就是自定义的分页代码,其实LinkButton里的CommandArgument参数就是gridview的当前页,CommandName表示触发的命令,这些都不能改。
注意里面有个RecordCount的变量,他是public类型,是从后台传过来的,表示记录的条数,测试的时候别忘了这个变量啊。

二、分页的代码
gridview自定义分页 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
     }

SetGridPage的函数
 dt;        
          theGrid.DataBind();        
gridview自定义分页    }

相关文章: