一个简单的GridView分页通用程序

效果图:

前台代码:
我的GridView选择AllowPaging = true(允许分页),但要把<PagerSettings Visible="False" />

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div align="left">
    
        
<asp:GridView ID="GridView1" runat="server" Height="134px" Width="835px" 
            CellPadding
="4" ForeColor="#333333" GridLines="None" AllowPaging="True" 
            AllowSorting
="True" AutoGenerateColumns="False" PageSize="2">
            
<PagerSettings Visible="False" />
            
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            
<RowStyle BackColor="#EFF3FB" />
            
<Columns>
                
<asp:BoundField DataField="id" HeaderText="学号" />
                
<asp:BoundField DataField="name" HeaderText="姓名" />
                
<asp:BoundField DataField="sex" HeaderText="性别" />
                
<asp:BoundField DataField="age" HeaderText="年龄" />
                
<asp:BoundField DataField="department" HeaderText="专业" />
                
<asp:BoundField DataField="grade" HeaderText="年级" />
            
</Columns>
            
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            
<EditRowStyle BackColor="#2461BF" />
            
<AlternatingRowStyle BackColor="White" />
        
</asp:GridView>
        
<asp:LinkButton ID="lnkbtnFirst" runat="server" onclick="PagerButtonClick">首页</asp:LinkButton>
        
<asp:LinkButton ID="lnkbtnPre" runat="server" onclick="PagerButtonClick">上一页</asp:LinkButton>
        
<asp:LinkButton ID="lnkbtnNext" runat="server" onclick="PagerButtonClick">下一页</asp:LinkButton>
        
<asp:LinkButton ID="lnkbtnLast" runat="server" onclick="PagerButtonClick">尾页</asp:LinkButton>
        
<asp:Label ID="lblCurrentIndex" runat="server" Text="第?页"></asp:Label>
        
<asp:Label ID="lblPageCount" runat="server" Text="共?页"></asp:Label>
        
<asp:Label ID="lblRecordCount" runat="server" Text="记录数"></asp:Label>
        
<asp:TextBox ID="txtJumpPage" runat="server" Width="24px">1</asp:TextBox>
        
<asp:LinkButton ID="lnkbtnJumpPage" runat="server" 
            onclick
="lnkbtnJumpPage_Click">跳转</asp:LinkButton>
    
</div>
    
</form>
</body>
</html>

后台代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

public partial class Default4 : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            Bind();
        }

    }


    
private void Bind()
    
{
        SqlConnection conn 
= new SqlConnection(ConfigurationManager.ConnectionStrings["Personal"].ConnectionString);
        SqlDataAdapter adp 
= new SqlDataAdapter("select * from information", conn);
        DataSet dataset 
= new DataSet();
        
try
        
{
            conn.Open();
            adp.Fill(dataset, 
"information");
            GridView1.DataSource 
= dataset;
            GridView1.DataKeyNames 
= new String[] "id" };
            GridView1.DataBind();
        }

        
catch (Exception ex)
        
{
            Response.Write(
"数据库错误,错误原因:" + ex.Message);
            Response.End();
        }

        
finally
       
{
            
// 释放占有资源
            conn.Close();
        }

        lblCurrentIndex.Text 
= "" + (GridView1.PageIndex + 1).ToString() + "";
        lblPageCount.Text 
= "总共" + GridView1.PageCount.ToString() + "";
        lblRecordCount.Text 
= "总共" + dataset.Tables[0].Rows.Count.ToString() + "";
        
if (dataset.Tables[0].Rows.Count == 0)
        
{
            lnkbtnFirst.Visible 
= false;
            lnkbtnPre.Visible 
= false;
            lnkbtnNext.Visible 
= false;
            lnkbtnLast.Visible 
= false;
            lblCurrentIndex.Visible 
= false;
            lblPageCount.Visible 
= false;
            lblRecordCount.Visible 
= false;
        }

        
else if (GridView1.PageCount == 1)
        
{
            lnkbtnFirst.Visible 
= false;
            lnkbtnPre.Visible 
= false;
            lnkbtnNext.Visible 
= false;
            lnkbtnLast.Visible 
= false;
        }

        lnkbtnFirst.CommandArgument 
= "1";
        lnkbtnPre.CommandArgument 
= (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString());
        lnkbtnNext.CommandArgument 
= (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString());
        lnkbtnLast.CommandArgument 
= GridView1.PageCount.ToString();
    }

    
protected void lnkbtnJumpPage_Click(object sender, EventArgs e)
    
{
        GridView1.PageIndex 
= Convert.ToInt32(txtJumpPage.Text) - 1;
        lblCurrentIndex.Text 
= "" + (GridView1.PageIndex + 1).ToString() + "";
        Bind();
    }

    
protected void PagerButtonClick(object sender, EventArgs e)
    
{
        GridView1.PageIndex 
= Convert.ToInt32(((LinkButton)sender).CommandArgument) - 1;
        Bind();
    }

}

posted @ 2008-03-23 22:00  MicroCoder  阅读(1195)  评论(1编辑  收藏  举报