asp.net 分页代码? 用GridView 不用写代码,点点就OK 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 存储过程CREATE PROCEDURE [dbo].[sp_CommonPage] (@sql nvarchar(4000), @pagesize int, @page int)ASBEGINDECLARE @ResultSql nvarchar(4000); DECLARE @OrderStr nvarchar(400); DECLARE @SelectStr nvarchar(3000); DECLARE @OtherStr nvarchar(1000); DECLARE @ColumnsStr nvarchar(2000); DECLARE @OrderIndex int; DECLARE @FromIndex int; SET @OrderIndex = Charindex('Order',@sql,0); SET @FromIndex= Charindex('From',@sql,0); SET @SelectStr = Left(@sql,@FromIndex-1); SET @ColumnsStr = Substring(@Sql,7,@FromIndex-7); SET @OtherStr = Substring(@sql, @FromIndex,@OrderIndex-@FromIndex); SET @ORderStr = Right(@sql,len(@sql)-@OrderIndex+1); SET @ResultSql = @SelectStr + ',row_number() Over('+@OrderStr+') As RowNumber '+@OtherStr; Set @ResultSql = 'Select '+@ColumnsStr+' from('+@ResultSql+') As Temp where Temp.RowNumber between '+Str(@pagesize*@page) + ' AND ' + Str(@pagesize*@page+@pagesize)EXEC(@ResultSql)ENDGOCREATE PROCEDURE [dbo].[sp_CountPage]@sql nvarchar(4000)ASBEGINDECLARE @ResultSql nvarchar(4000)DECLARE @ColumnsStr nvarchar(2000); DECLARE @OtherStr nvarchar(1000); DECLARE @OrderIndex int; DECLARE @FromIndex int;SET @OrderIndex = Charindex('Order',@sql,0); SET @FromIndex= Charindex('From',@sql,0); SET @ColumnsStr = Substring(@Sql,7,@FromIndex-7); SET @OtherStr = Substring(@sql, @FromIndex,@OrderIndex-@FromIndex); Set @ResultSql='Select '+@ColumnsStr+' '+@OtherStrEXEC(@ResultSql)END 数据层 /// <summary> /// 得到总页数 /// </summary> public IList<Model.UserInfo> CountPage(string strwhere) { string sql = "select * from UserInfo"; if (strwhere.Length > 0) { sql += " " + strwhere; } sql += " order by UserId"; SqlParameter[] parameters = { new SqlParameter("@sql",SqlDbType.NVarChar,4000) }; parameters[0].Value = sql; DataSet ds = DBUtility.SqlHelper.RunProcedure(DBUtility.SqlHelper.Connection, "sp_CountPage", parameters, "ds"); return GetList(ds); } /// <summary> /// 分页获取泛型数据列表 /// </summary> public IList<Model.UserInfo> GetList(int pageSize, int pageIndex, string strwhere, string order, string fag) { string sql = "select * from UserInfo"; if (strwhere.Length > 0) { sql += " " + strwhere; } sql += " order by " + order; sql += " " + fag; SqlParameter[] parameters = { new SqlParameter("@sql",SqlDbType.NVarChar,4000), new SqlParameter("@pagesize", SqlDbType.Int), new SqlParameter("@page",SqlDbType.Int) }; parameters[0].Value = sql; parameters[1].Value = pageSize; parameters[2].Value = pageIndex; DataSet ds = DBUtility.SqlHelper.RunProcedure(DBUtility.SqlHelper.Connection, "sp_CommonPage", parameters, "ds"); return GetList(ds); }业务层 /// <summary> /// 得到总页数 /// </summary> public int CountPage(int pageSize) { string strwhere = String.Empty; IList<Model.UserInfo> list = dal.CountPage(strwhere); if (list.Count % pageSize == 0) { return (list.Count / pageSize); } else { return ((list.Count / pageSize) + 1); } } /// <summary> /// 分页获取泛型数据列表,不建议直接使用此方法,请根据业务逻辑重写 /// </summary> public IList<Model.UserInfo> GetList(int pageSize, int pageIndex, string order, string fag) { string strwhere = String.Empty; return dal.GetList(pageSize, pageIndex, strwhere, order, fag); } 界面后台public partial class PersonManage_UserManage : System.Web.UI.Page{ Model.UserInfo user = new Model.UserInfo(); Model.DepartInfo depart = new Model.DepartInfo(); Model.OperateLog operate = new Model.OperateLog(); BLL.UserInfo bll_user = new BLL.UserInfo(); BLL.DepartInfo bll_depart = new BLL.DepartInfo(); BLL.OperateLog bll_operate = new BLL.OperateLog(); const int pageSize =12; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //首次加载,赋初值 ViewState["Page"] = 0; DisplayUserInfo(); } } protected void DisplayUserInfo() { List<Model.UserInfo> list = bll_user.GetList(pageSize, this.Pager, "UserId", "ASC") as List<Model.UserInfo>;ViewState["countPage"] = bll_user.CountPage(pageSize); this.lblCurrentPage.Text = "当前第 " + (Pager + 1) + " 页 "; this.lblCommon.Text = "共 " + (Convert.ToInt32(ViewState["countPage"])) + " 页"; this.ddlJump.Items.Clear(); for (int i = 0; i < Convert.ToInt32(ViewState["countPage"]);i++ ) { this.ddlJump.Items.Add((i+1).ToString()); } this.ddlJump.SelectedValue =(Pager+1).ToString(); SetEnable(list); this.gvUserInfo.DataSource = list; this.gvUserInfo.DataBind(); } /// <summary> /// 当前页数 /// </summary> private int Pager { get { return (int)ViewState["Page"]; } set { ViewState["Page"] = value; } } /// <summary> /// 按钮状态设置 /// </summary> private void SetEnable(IList<Model.UserInfo> list) { if (list.Count > 0) { btnPrev.Enabled = true; btnNext.Enabled = true; if (Pager == 0) this.btnPrev.Enabled = false; if ((Pager + 1) == (Convert.ToInt32(ViewState["countPage"]))) this.btnNext.Enabled = false; } else { btnPrev.Enabled = false; btnNext.Enabled = false; } } /// <summary> /// 首页 /// </summary> protected void btnFrist_Click(object sender, EventArgs e) { Pager=0; DisplayUserInfo(); } /// <summary> /// 上一页 /// </summary> protected void btnPrev_Click(object sender, EventArgs e) { Pager--; DisplayUserInfo(); } /// <summary> /// 下一页 /// </summary> protected void btnNext_Click(object sender, EventArgs e) { Pager++; DisplayUserInfo(); } /// <summary> /// 未页 /// </summary> protected void btnLast_Click(object sender, EventArgs e) { Pager=(Convert.ToInt32(ViewState["countPage"])-1); DisplayUserInfo(); } /// <summary> /// 跳转页 /// </summary> protected void ddlJump_SelectedIndexChanged(object sender, EventArgs e) { Pager = Convert.ToInt32(this.ddlJump.SelectedValue.ToString())-1; DisplayUserInfo(); }}界面<div id="pagger"> <br /> <asp:Label ID="lblCurrentPage" runat="server"></asp:Label> <asp:Button ID="btnFrist" OnClick="btnFrist_Click" runat="server" Text="首 页" Width="57px" Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid" BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button> <asp:Button ID="btnPrev" OnClick="btnPrev_Click" runat="server" Text="上一页" Width="57px" Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid" BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button> <asp:Button ID="btnNext" OnClick="btnNext_Click" runat="server" Text="下一页" Width="57px" Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid" BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button> <asp:Button ID="btnLast" OnClick="btnLast_Click" runat="server" Text="未 页" Width="57px" Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid" BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button> 跳转到<asp:DropDownList ID="ddlJump" runat="server" Width="60px" AutoPostBack="True" OnSelectedIndexChanged="ddlJump_SelectedIndexChanged"> </asp:DropDownList>页 <asp:Label ID="lblCommon" runat="server" Text="Label"></asp:Label> </div> gridview 如何获取第1行第1列的值 大家帮我看看这个怎么没有显示 谁帮我看看这条SQL语句问题出在哪里? 怎样加前台界面的mousemove、onclick代码.(即刻结分) 窗体刷新的问题,请大家看看 问一下大家的思路:B/S结构下,怎么处理客户端与服务端在不同时区的时差问题? 一个奇怪的问题,你们肯定没见过。看谁能解决!!! 上火最简单的连接都不行了 帮看看 为什么登陆时中文和英文长度限制一样 VS2012无法启动调试 HttpWebRequest Post 返回 :远程服务器返回错误: (403) 已禁止。 SOAPToolkit3.0 如何使用??????????????
CREATE PROCEDURE [dbo].[sp_CommonPage]
(@sql nvarchar(4000), @pagesize int, @page int)
AS
BEGINDECLARE @ResultSql nvarchar(4000);
DECLARE @OrderStr nvarchar(400);
DECLARE @SelectStr nvarchar(3000);
DECLARE @OtherStr nvarchar(1000);
DECLARE @ColumnsStr nvarchar(2000);
DECLARE @OrderIndex int;
DECLARE @FromIndex int; SET @OrderIndex = Charindex('Order',@sql,0);
SET @FromIndex= Charindex('From',@sql,0);
SET @SelectStr = Left(@sql,@FromIndex-1);
SET @ColumnsStr = Substring(@Sql,7,@FromIndex-7);
SET @OtherStr = Substring(@sql, @FromIndex,@OrderIndex-@FromIndex);
SET @ORderStr = Right(@sql,len(@sql)-@OrderIndex+1); SET @ResultSql = @SelectStr + ',row_number() Over('+@OrderStr+') As RowNumber '
+@OtherStr; Set @ResultSql = 'Select '+@ColumnsStr+' from('+@ResultSql+') As Temp where Temp.RowNumber between '
+Str(@pagesize*@page) + ' AND ' + Str(@pagesize*@page+@pagesize)EXEC(@ResultSql)END
GO
CREATE PROCEDURE [dbo].[sp_CountPage]
@sql nvarchar(4000)
AS
BEGINDECLARE @ResultSql nvarchar(4000)
DECLARE @ColumnsStr nvarchar(2000);
DECLARE @OtherStr nvarchar(1000);
DECLARE @OrderIndex int;
DECLARE @FromIndex int;SET @OrderIndex = Charindex('Order',@sql,0);
SET @FromIndex= Charindex('From',@sql,0);
SET @ColumnsStr = Substring(@Sql,7,@FromIndex-7);
SET @OtherStr = Substring(@sql, @FromIndex,@OrderIndex-@FromIndex); Set @ResultSql='Select '+@ColumnsStr+' '+@OtherStr
EXEC(@ResultSql)
END
/// <summary>
/// 得到总页数
/// </summary>
public IList<Model.UserInfo> CountPage(string strwhere)
{
string sql = "select * from UserInfo";
if (strwhere.Length > 0)
{
sql += " " + strwhere;
}
sql += " order by UserId";
SqlParameter[] parameters = {
new SqlParameter("@sql",SqlDbType.NVarChar,4000)
};
parameters[0].Value = sql;
DataSet ds = DBUtility.SqlHelper.RunProcedure(DBUtility.SqlHelper.Connection, "sp_CountPage", parameters, "ds");
return GetList(ds);
} /// <summary>
/// 分页获取泛型数据列表
/// </summary>
public IList<Model.UserInfo> GetList(int pageSize, int pageIndex, string strwhere, string order, string fag)
{
string sql = "select * from UserInfo";
if (strwhere.Length > 0)
{
sql += " " + strwhere;
}
sql += " order by " + order;
sql += " " + fag;
SqlParameter[] parameters = {
new SqlParameter("@sql",SqlDbType.NVarChar,4000),
new SqlParameter("@pagesize", SqlDbType.Int),
new SqlParameter("@page",SqlDbType.Int)
};
parameters[0].Value = sql;
parameters[1].Value = pageSize;
parameters[2].Value = pageIndex;
DataSet ds = DBUtility.SqlHelper.RunProcedure(DBUtility.SqlHelper.Connection, "sp_CommonPage", parameters, "ds");
return GetList(ds);
}
业务层
/// <summary>
/// 得到总页数
/// </summary>
public int CountPage(int pageSize)
{
string strwhere = String.Empty;
IList<Model.UserInfo> list = dal.CountPage(strwhere);
if (list.Count % pageSize == 0)
{
return (list.Count / pageSize);
}
else
{
return ((list.Count / pageSize) + 1);
}
} /// <summary>
/// 分页获取泛型数据列表,不建议直接使用此方法,请根据业务逻辑重写
/// </summary>
public IList<Model.UserInfo> GetList(int pageSize, int pageIndex, string order, string fag)
{
string strwhere = String.Empty;
return dal.GetList(pageSize, pageIndex, strwhere, order, fag);
}
{
Model.UserInfo user = new Model.UserInfo();
Model.DepartInfo depart = new Model.DepartInfo();
Model.OperateLog operate = new Model.OperateLog(); BLL.UserInfo bll_user = new BLL.UserInfo();
BLL.DepartInfo bll_depart = new BLL.DepartInfo();
BLL.OperateLog bll_operate = new BLL.OperateLog(); const int pageSize =12; protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//首次加载,赋初值
ViewState["Page"] = 0;
DisplayUserInfo(); }
} protected void DisplayUserInfo()
{
List<Model.UserInfo> list = bll_user.GetList(pageSize, this.Pager, "UserId", "ASC") as List<Model.UserInfo>;
ViewState["countPage"] = bll_user.CountPage(pageSize);
this.lblCurrentPage.Text = "当前第 " + (Pager + 1) + " 页 ";
this.lblCommon.Text = "共 " + (Convert.ToInt32(ViewState["countPage"])) + " 页";
this.ddlJump.Items.Clear();
for (int i = 0; i < Convert.ToInt32(ViewState["countPage"]);i++ )
{
this.ddlJump.Items.Add((i+1).ToString());
}
this.ddlJump.SelectedValue =(Pager+1).ToString();
SetEnable(list); this.gvUserInfo.DataSource = list;
this.gvUserInfo.DataBind();
} /// <summary>
/// 当前页数
/// </summary>
private int Pager
{
get
{
return (int)ViewState["Page"];
}
set
{
ViewState["Page"] = value;
}
} /// <summary>
/// 按钮状态设置
/// </summary>
private void SetEnable(IList<Model.UserInfo> list)
{
if (list.Count > 0)
{
btnPrev.Enabled = true;
btnNext.Enabled = true;
if (Pager == 0)
this.btnPrev.Enabled = false;
if ((Pager + 1) == (Convert.ToInt32(ViewState["countPage"])))
this.btnNext.Enabled = false;
}
else
{
btnPrev.Enabled = false;
btnNext.Enabled = false;
}
} /// <summary>
/// 首页
/// </summary>
protected void btnFrist_Click(object sender, EventArgs e)
{
Pager=0;
DisplayUserInfo();
} /// <summary>
/// 上一页
/// </summary>
protected void btnPrev_Click(object sender, EventArgs e)
{
Pager--;
DisplayUserInfo();
} /// <summary>
/// 下一页
/// </summary>
protected void btnNext_Click(object sender, EventArgs e)
{
Pager++;
DisplayUserInfo();
} /// <summary>
/// 未页
/// </summary>
protected void btnLast_Click(object sender, EventArgs e)
{
Pager=(Convert.ToInt32(ViewState["countPage"])-1);
DisplayUserInfo();
} /// <summary>
/// 跳转页
/// </summary>
protected void ddlJump_SelectedIndexChanged(object sender, EventArgs e)
{
Pager = Convert.ToInt32(this.ddlJump.SelectedValue.ToString())-1;
DisplayUserInfo();
}
}界面
<div id="pagger">
<br />
<asp:Label ID="lblCurrentPage" runat="server"></asp:Label>
<asp:Button ID="btnFrist" OnClick="btnFrist_Click" runat="server" Text="首 页" Width="57px"
Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid"
BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button>
<asp:Button ID="btnPrev" OnClick="btnPrev_Click" runat="server" Text="上一页" Width="57px"
Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid"
BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button>
<asp:Button ID="btnNext" OnClick="btnNext_Click" runat="server" Text="下一页" Width="57px"
Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid"
BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button>
<asp:Button ID="btnLast" OnClick="btnLast_Click" runat="server" Text="未 页" Width="57px"
Height="16px" ForeColor="white" Font-Size="10px" BorderWidth="1px" BorderStyle="Solid"
BorderColor="SeaGreen" BackColor="#6375DE"></asp:Button>
跳转到<asp:DropDownList ID="ddlJump" runat="server" Width="60px" AutoPostBack="True"
OnSelectedIndexChanged="ddlJump_SelectedIndexChanged">
</asp:DropDownList>页
<asp:Label ID="lblCommon" runat="server" Text="Label"></asp:Label>
</div>