结合aspnetpager控件和三层的sql语句的分页
2012-09-23 15:29
459 查看
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 = "上一页";
}
}
}
数据控件直接换成需要的即可
效果如下:
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 = "上一页";
}
}
}
数据控件直接换成需要的即可
效果如下:
相关文章推荐
- asp.net 分页sql语句(结合aspnetpager)
- 分页sql语句(结合aspnetpager)
- asp.net 分页sql语句(结合aspnetpager)
- asp.net结合aspnetpager用sql语句分页
- asp.net结合aspnetpager用sql语句分页
- asp.net 分页sql语句(结合aspnetpager)
- URLRewrite伪静态与AspNetPager分页控件的结合
- 三层嵌套oracle数据库记录分页sql语句
- URLRewrite伪静态与AspNetPager分页控件的结合
- URLRewrite伪静态与AspNetPager分页控件的结合
- AspNetPager常用属性及用法 / URLRewrite伪静态与AspNetPager分页控件的结合
- PagedDataSource数据绑定控件和AspNetPager分页控件结合使用列表分页
- URLRewrite伪静态与AspNetPager分页控件的结合
- URLRewrite伪静态与AspNetPager分页控件的结合
- ASP.NET调用Oracle分页存储过程并结合ASPnetpager分页控件 实现分页功能
- URLRewrite伪静态与AspNetPager分页控件的结合
- DbEntry采用分页技术显示数据在GridView里面并用AspNetPager控件来显示分页
- C#分页代码,或许这个代码比Asp.Net分页和AspNetPager控件更好用
- 三层模式中,多条件查询中的sql语句拼接
- 【转】AspNetPager分页控件用法