C#自定义分页的页面代码和后台代码

本文详细介绍了如何在ASP.NET中实现分页功能,包括设置每页显示的记录数量、当前页号及总页数等关键参数,并通过实例展示了如何使用GridView控件结合SQL查询来实现数据的分页显示。

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 Default2 : System.Web.UI.Page
{
    //每页显示的最多记录的条数
    private int pageViewCount = 10;
    //当前页号
    private int currentPageNumber;
    //显示数据的总条数
    private static int rowCount;
    //总页数
    private static int pageCount;
    //进行自动编号和鼠标移动显示颜色
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GetAllRows();
            GridView1.DataSource = GetData("成都", 1, 10);
            GridView1.DataBind();
         
            pageCount = (rowCount - 1) / pageViewCount + 1;
            currentPageNumber = 1;
            ViewState["currentPageNumber"] = currentPageNumber;//当前页存储在viewstate中
            lbtnPrevious.Enabled = false;
            lbtnFirst.Enabled = false;
            for (int i = 1; i <= pageCount; i++)
            {
                dropPage.Items.Add(new ListItem(i.ToString(), i.ToString()));
            }
            dropPage.SelectedValue = dropPage.Items.FindByValue(currentPageNumber.ToString()).Value;
          }
        
    }
    public DataSet GetData(string SeacherContent,int pageNow,int pageCount)
    {
        SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["sqlstring"].ToString());
     
        SqlCommand cmd = new SqlCommand("swort.GetNewsByPage", cn);
        //cmd.CommandType = CommandType.StoredProcedure;
        //SqlParameter parm = new SqlParameter("@title", SqlDbType.VarChar, 200);
        //string search = "北京";
        //parm.Value = search;
        //cmd.Parameters.Add(parm);
      cn.Open();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@title", SqlDbType.VarChar, 200);
        cmd.Parameters["@title"].Value = SeacherContent;
        cmd.Parameters.Add("@pageviewcount", SqlDbType.Int);
        cmd.Parameters["@pageviewcount"].Value = pageCount;
       cmd.Parameters.Add("@pagesize", SqlDbType.Int);
       cmd.Parameters["@pagesize"].Value = pageNow;
       SqlDataAdapter sda = new SqlDataAdapter(cmd);
  cmd.ExecuteNonQuery();
        DataSet ds=new DataSet ();
        sda.Fill(ds);
      cn.Close();
        return ds;
    }
    private static void GetAllRows()
    {
        SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["sqlstring"].ToString());
   
        SqlCommand cmd = new SqlCommand("swort.GetNewsCount", cn);
     
       
        //cmd.CommandType = CommandType.StoredProcedure;
        //SqlParameter parm = new SqlParameter("@title", SqlDbType.VarChar, 200);
        //string search = "北京";
        //parm.Value = search;
        //cmd.Parameters.Add(parm);
        cmd.CommandType = CommandType.StoredProcedure;
            cn.Open();
        cmd.Parameters.Add("@title", SqlDbType.VarChar, 200);
        string search = "成都";
        cmd.Parameters["@title"].Value = search;
       
       
          rowCount = (int)cmd.ExecuteScalar();//总条数
         cn.Close();
   
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType ==DataControlRowType.DataRow)
        {
            //鼠标经过时,行背景色变 
            e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
            //鼠标移出时,行背景色变 
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");
            if (e.Row.RowIndex != -1)
            {
                int id = e.Row.RowIndex + 1;
                e.Row.Cells[0].Text = id.ToString();
            }
        }
       
    }
    //进行按纽的控制 以及对事件的触发
    protected void lbtnPage_Command(object sender, CommandEventArgs e)
    {
        switch (e.CommandName)
        {
            case "First":
                currentPageNumber = 1;
                break;
            case "Previous":
                currentPageNumber = (int)ViewState["currentPageNumber"] - 1 > 1 ? (int)ViewState["currentPageNumber"] - 1 : 1;
                break;
            case "Next":
                currentPageNumber = (int)ViewState["currentPageNumber"] + 1 < pageCount ? (int)ViewState["currentPageNumber"] + 1 : pageCount;
                break;
            case "Last":
                currentPageNumber = pageCount;
                break;
        }
        dropPage.SelectedValue = dropPage.Items.FindByValue(currentPageNumber.ToString()).Value;
        ViewState["currentPageNumber"] = currentPageNumber;
        SetButton(currentPageNumber);
       GridView1.DataSource= GetData("成都", currentPageNumber, pageViewCount);
       GridView1.DataBind();
     
    }
    //设置按纽的可用否
    private void SetButton(int currentPageNumber)
    {
        lbtnFirst.Enabled = currentPageNumber != 1;
        lbtnPrevious.Enabled = currentPageNumber != 1;
        lbtnNext.Enabled = currentPageNumber != pageCount;
        lbtnLast.Enabled = currentPageNumber != pageCount;
    }
    //设置按纽的可用否
    protected void dropPage_SelectedIndexChanged(object sender, EventArgs e)
    {
        currentPageNumber = int.Parse(dropPage.SelectedValue);
        ViewState["currentPageNumber"] = currentPageNumber;
        SetButton(currentPageNumber);
        GridView1.DataSource = GetData("成都", currentPageNumber, pageViewCount);
        GridView1.DataBind();
    }
}
 

经济

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!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>
      <asp:LinkButton ID="lbtnFirst" runat="server" CommandName="First" OnCommand="lbtnPage_Command">|<</asp:LinkButton>
        <asp:LinkButton ID="lbtnPrevious" runat="server" CommandName="Previous" OnCommand="lbtnPage_Command"><<</asp:LinkButton>
        <asp:Label ID="lblMessage" runat="server" />
        <asp:LinkButton ID="lbtnNext" runat="server" CommandName="Next" OnCommand="lbtnPage_Command">>></asp:LinkButton>
        <asp:LinkButton ID="lbtnLast" runat="server" CommandName="Last" OnCommand="lbtnPage_Command">>|</asp:LinkButton>
        转到第<asp:DropDownList ID="dropPage" runat="server" AutoPostBack="True" OnSelectedIndexChanged="dropPage_SelectedIndexChanged">
        </asp:DropDownList>
        页
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="id" onrowdatabound="GridView1_RowDataBound" Width="587px"
           >
            <Columns>
                <asp:BoundField DataField="id" HeaderText="编号" InsertVisible="False"
                    ReadOnly="True"  />
                <asp:BoundField DataField="title" HeaderText="标题" />
                <asp:BoundField DataField="addtime" HeaderText="存储时间" />
                
            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>
</html>


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/swort_177/archive/2008/08/02/2759245.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值