结合aspnetpager控件和三层的sql语句的分页

Model层:

using System;
namespace TestWeb.Model
{
 /// <summary>
 /// _userInfo:实体类(属性说明自动提取数据库字段的描述信息)
 /// </summary>
 [Serializable]
 public partial class _userInfo
 {
  public _userInfo()
  {}
  #region Model
  private int _u_id;
  private string _u_name;
  private string _u_pwd;
  private DateTime? _u_date;
  /// <summary>
  ///
  /// </summary>
  public int u_id
  {
   set{ _u_id=value;}
   get{return _u_id;}
  }
  /// <summary>
  ///
  /// </summary>
  public string u_name
  {
   set{ _u_name=value;}
   get{return _u_name;}
  }
  /// <summary>
  ///
  /// </summary>
  public string u_pwd
  {
   set{ _u_pwd=value;}
   get{return _u_pwd;}
  }
  /// <summary>
  ///
  /// </summary>
  public DateTime? u_date
  {
   set{ _u_date=value;}
   get{return _u_date;}
  }
  #endregion Model

 }

DAL层:

/// <summary>
  /// 分页获取数据列表
  /// </summary>
  public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
  {
   StringBuilder strSql=new StringBuilder();
   strSql.Append("SELECT * FROM ( ");
   strSql.Append(" SELECT ROW_NUMBER() OVER (");
   if (!string.IsNullOrEmpty(orderby.Trim()))
   {
    strSql.Append("order by T." + orderby );
   }
   else
   {
    strSql.Append("order by T.u_id asc");
   }
   strSql.Append(")AS Row, T.*  from _userInfo T ");
   if (!string.IsNullOrEmpty(strWhere.Trim()))
   {
    strSql.Append(" WHERE " + strWhere);
   }
   strSql.Append(" ) TT");
   strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
   return DbHelperSQL.Query(strSql.ToString());
  }

DBHelper:

/// <summary>
        /// 执行查询语句,返回DataSet
        /// </summary>
        /// <param name="SQLString">查询语句</param>
        /// <returns>DataSet</returns>
        public static DataSet Query(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
        }

 

BLL层:

/// <summary>
  /// 分页获取数据列表
  /// </summary>
  public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
  {
   return dal.GetListByPage( strWhere,  orderby,  startIndex,  endIndex);
  }

Web层:Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestWeb.Web.Default" %>

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

<!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">
        <asp:Repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
        <table width="100%" border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse">
        <tr style="backGround-color:#CCCCFF"><th style="width:15%">
        <asp:Literal ID="Literal1" runat="server" Text="用户id" />
        </th><th style="width:15%">
        <asp:Literal ID="Literal3" runat="server" Text="用户名" /></th>
        <th style="width:30%"><asp:Literal ID="Literal5" runat="server" Text="密码" /></th>
        <th style="width:20%"><asp:Literal ID="Literal2" runat="server" Text="注册时间" /></th>
        </tr>
        </HeaderTemplate>
        <ItemTemplate>
        <tr style="background-color:#FAF3DC">
        <td><%#DataBinder.Eval(Container.DataItem, "u_id")%></td>
        <td><%#DataBinder.Eval(Container.DataItem, "u_name")%></td>
        <td><%#DataBinder.Eval(Container.DataItem,"u_pwd")%></td>
         <td><%#DataBinder.Eval(Container.DataItem, "u_date", "{0:d}")%></td>
        </tr>
        </ItemTemplate>
  <FooterTemplate>
        </table>
        </FooterTemplate>
        </asp:Repeater>
  <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%"
          
            onpagechanging="AspNetPager1_PageChanging"
            onpagechanged="AspNetPager1_PageChanged">
        </webdiyer:AspNetPager>
  </form>
</body>
</html>

default.aspx.cs:

namespace TestWeb.Web
{
    public partial class Default :BaseUser
    {
        BLL._userInfo userInfo = new BLL._userInfo();
       
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            new BaseUser().PageinationBind(AspNetPager1);// aspNetPager的样式
           
            if (!IsPostBack)
            {
                DataBindRe();
            }
        }
        /// <summary>
        /// 绑定数据源
        /// </summary>
        public void DataBindRe()
        {
            AspNetPager1.RecordCount = userInfo.GetAllList().Tables[0].Rows.Count;//总共多少条数据
            AspNetPager1.PageSize = 5;//一页多少条数据
            int startRowIndex = (this.AspNetPager1.CurrentPageIndex-1) * AspNetPager1.PageSize+1;//从1开始进行索引
            int endRowIndex = (AspNetPager1.PageSize-1)+startRowIndex;//5的时候结束索引
            Repeater1.DataSource = userInfo.GetListByPage("","",startRowIndex,endRowIndex);//分页获得数据
            Repeater1.DataBind();//绑定
        }

        protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
          
            DataBindRe();
        }

        protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
        {
            this.AspNetPager1.CurrentPageIndex = e.NewPageIndex;//获取分页控件当前选择的页数
        }

    }
}

在web层添加公共的基类

BaseUser.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using TestWeb.BLL;
using Maticsoft.Common;
namespace TestWeb.Web
{
    public class BaseUser:BasePage
    {
        private int u_id;
        private string u_name;
        private string u_date;

        public string U_date
        {
            get { return u_date; }
            set { u_date = value; }
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            //    if (Request.Cookies["User"] == null)
            //    {
            //        Response.Redirect(Maticsoft.Common.Constant.UserLoginWeb);
            //        Response.End();
            //    }
            //    else
            //    {
            //        u_id = Convert.ToInt32(Request.Cookies["User"]["u_id"].ToString());//cookies的值
            //        u_name =Request.Cookies["User"]["u_name"].ToString();
            //    }
        }
      
        public int U_id
        {
            get { return u_id; }
            set { u_id = value; }
        }
       
        public string U_name
        {
            get { return u_name; }
            set { u_name = value; }
        }
       
    }
}

 

基类BasePage.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TestWeb.Web
{
    public class BasePage:System.Web.UI.Page
    {
        /// <summary>
        /// 分页参数设置
        /// </summary>
        /// <param name="AspNetPager"></param>
      
        public  void PageinationBind(Wuqi.Webdiyer.AspNetPager AspNetPager)
       {
            AspNetPager.UrlPaging = false;//获取或设置是否启用url来传递分页信息
            AspNetPager.ShowPageIndexBox = Wuqi.Webdiyer.ShowPageIndexBox.Never;//指定页索引框的显示方式,以便用户输入或从下拉框中选择需要跳转的页索引
            AspNetPager.FirstPageText = "首页";
            AspNetPager.LastPageText = "尾页";
            AspNetPager.NextPageText = "下一页";
            AspNetPager.PrevPageText = "上一页";
        }
    }
}

数据控件直接换成需要的即可

效果如下:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值