[color=#0000FF]求救 分页写好了 但实现不了首页和尾页的功能 只能实现上下翻 [/color]这是存贮过程分页if exists(select * from sysobjects where name='proc_SelectBooksByPage2')
drop proc proc_SelectBooksByPage2
go
create proc proc_SelectBooksByPage2
@current int,
@size int,
@pageCount int output,
@count int output
as
declare @str nvarchar(200)
select @count=count(*) from books
select @pageCount=@count/@size
set @str='
SELECT TOP '+CAST(@size AS VARCHAR(20))+' *
FROM books WHERE (bookid NOT IN (SELECT TOP '+cast((@size*@current) as VARCHAR(20))+' bookid FROM books ORDER BY bookid))
ORDER BY bookID'
下面是 后台代码
protected void Page_Load(object sender, EventArgs e)
{
this.lkPre.Click += new EventHandler(lkPre_Click);
this.lkNext.Click += new EventHandler(lkNext_Click);
if (!Page.IsPostBack)
{
DDBind(true, 0);
}
} #region 变量和属性 int count; //总记录数
int currentPage; //当前页数
int size; //每页显示记录数
int pageCout; //总页数
#endregion BookBLL bll = new BookBLL(); #region 自定义方法
/// <summary>
/// 数据绑定方法
/// </summary>
/// <param name="isFirst"></param>
/// <param name="currentPage"></param>
private void DDBind(bool isFirst, int currentPage)
{ pageCout = 0;
count = 0;
size = 5;
try
{
#region 分页
List<Book> bookList = bll.SelectBooks(currentPage, size, out pageCout, out count); ddlBooks.DataSource = bookList;
ddlBooks.DataBind(); this.lblCurrent.Text = (currentPage + 1).ToString();
this.lblPageCount.Text = pageCout.ToString();
this.lblCount.Text = count.ToString(); //总记录数
#endregion #region viewState
ViewState["CurrentPage"] = currentPage;
ViewState["PageCout"] = pageCout - 1;
ViewState["Count"] = count; //调用翻页判断方法
Paging();
#endregion
}
catch (Exception ex)
{
Page.RegisterClientScriptBlock("msg", "<script>alert('查询出现错误!');</script>");
} } /// <summary>
/// 判断是否翻页的方法
/// </summary>
private void Paging()
{
//判断上下页的可用
if (ViewState["CurrentPage"].ToString() == "0")
{
//如果是第一页,上一页不能用
lkPre.Enabled = false;
}
else
{
lkPre.Enabled = true;
} if ((ViewState["CurrentPage"]).ToString() == ViewState["PageCout"].ToString())
{
//如果当前页是最后一页,下一页不能用
lkNext.Enabled = false;
}
else
{
lkNext.Enabled = true;
}
} /// <summary>
/// 根据库存数量返回结果
/// </summary>
/// <param name="dr"></param>
/// <returns></returns>
public string GetStore(object dr)
{
int num = int.Parse(DataBinder.Eval(dr,"Number").ToString());
if (num > 0)
return "有库存";
else
return "无库存";
}
#endregion #region 事件
/// <summary>
/// 下一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void lkNext_Click(object sender, EventArgs e)
{
currentPage = int.Parse(ViewState["CurrentPage"].ToString()) + 1;
DDBind(false, currentPage);
} /// <summary>
/// 上一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void lkPre_Click(object sender, EventArgs e)
{
currentPage = int.Parse(ViewState["CurrentPage"].ToString()) - 1;
DDBind(false, currentPage);
}
#endregion protected void ddlBooks_DeleteCommand(object source, DataListCommandEventArgs e)
{
int row=e.Item.ItemIndex;
HiddenField hf= ddlBooks.Items[row].FindControl("hfID") as HiddenField;
int id = Convert.ToInt32(hf.Value);
} protected void lblFirst_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = 1; //首页
} protected void lblLast_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = pageCout;//尾页
}
[color=#0000FF]求救 分页写好了 但实现不了首页和尾页的功能 只能实现上下翻 [/color]
drop proc proc_SelectBooksByPage2
go
create proc proc_SelectBooksByPage2
@current int,
@size int,
@pageCount int output,
@count int output
as
declare @str nvarchar(200)
select @count=count(*) from books
select @pageCount=@count/@size
set @str='
SELECT TOP '+CAST(@size AS VARCHAR(20))+' *
FROM books WHERE (bookid NOT IN (SELECT TOP '+cast((@size*@current) as VARCHAR(20))+' bookid FROM books ORDER BY bookid))
ORDER BY bookID'
下面是 后台代码
protected void Page_Load(object sender, EventArgs e)
{
this.lkPre.Click += new EventHandler(lkPre_Click);
this.lkNext.Click += new EventHandler(lkNext_Click);
if (!Page.IsPostBack)
{
DDBind(true, 0);
}
} #region 变量和属性 int count; //总记录数
int currentPage; //当前页数
int size; //每页显示记录数
int pageCout; //总页数
#endregion BookBLL bll = new BookBLL(); #region 自定义方法
/// <summary>
/// 数据绑定方法
/// </summary>
/// <param name="isFirst"></param>
/// <param name="currentPage"></param>
private void DDBind(bool isFirst, int currentPage)
{ pageCout = 0;
count = 0;
size = 5;
try
{
#region 分页
List<Book> bookList = bll.SelectBooks(currentPage, size, out pageCout, out count); ddlBooks.DataSource = bookList;
ddlBooks.DataBind(); this.lblCurrent.Text = (currentPage + 1).ToString();
this.lblPageCount.Text = pageCout.ToString();
this.lblCount.Text = count.ToString(); //总记录数
#endregion #region viewState
ViewState["CurrentPage"] = currentPage;
ViewState["PageCout"] = pageCout - 1;
ViewState["Count"] = count; //调用翻页判断方法
Paging();
#endregion
}
catch (Exception ex)
{
Page.RegisterClientScriptBlock("msg", "<script>alert('查询出现错误!');</script>");
} } /// <summary>
/// 判断是否翻页的方法
/// </summary>
private void Paging()
{
//判断上下页的可用
if (ViewState["CurrentPage"].ToString() == "0")
{
//如果是第一页,上一页不能用
lkPre.Enabled = false;
}
else
{
lkPre.Enabled = true;
} if ((ViewState["CurrentPage"]).ToString() == ViewState["PageCout"].ToString())
{
//如果当前页是最后一页,下一页不能用
lkNext.Enabled = false;
}
else
{
lkNext.Enabled = true;
}
} /// <summary>
/// 根据库存数量返回结果
/// </summary>
/// <param name="dr"></param>
/// <returns></returns>
public string GetStore(object dr)
{
int num = int.Parse(DataBinder.Eval(dr,"Number").ToString());
if (num > 0)
return "有库存";
else
return "无库存";
}
#endregion #region 事件
/// <summary>
/// 下一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void lkNext_Click(object sender, EventArgs e)
{
currentPage = int.Parse(ViewState["CurrentPage"].ToString()) + 1;
DDBind(false, currentPage);
} /// <summary>
/// 上一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void lkPre_Click(object sender, EventArgs e)
{
currentPage = int.Parse(ViewState["CurrentPage"].ToString()) - 1;
DDBind(false, currentPage);
}
#endregion protected void ddlBooks_DeleteCommand(object source, DataListCommandEventArgs e)
{
int row=e.Item.ItemIndex;
HiddenField hf= ddlBooks.Items[row].FindControl("hfID") as HiddenField;
int id = Convert.ToInt32(hf.Value);
} protected void lblFirst_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = 1; //首页
} protected void lblLast_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = pageCout;//尾页
}
[color=#0000FF]求救 分页写好了 但实现不了首页和尾页的功能 只能实现上下翻 [/color]
解决方案 »
- 谁可以给我一分网站建设的策划书啊给客户看的
- 我要发布一个网站,在IIS6.0上发布成功,可是在IIS7.0上出来问题
- 输出图片乱码问题
- 急用定时截屏程序软件
- 菜鸟问题 C#聊天室怎样实现私聊 急急!! 在线等
- 请教GridView问题
- NickLee.Framework.2.0.0.2
- VB里的datediff在C#里用什么?
- 我想在做ASP.NET(c#语言)程序时,应该在vs.net的开发环境下为好,可几乎所有书籍中都没介绍如何利用此环境做asp.net网页,Why? Please t
- try..catch中Response.Redirect异常的解决
- |zyciis| page.LoadControl的方法,能不能得到这个control的ascx的源HTML,谢谢
- .net错误信息,是什么原因
{
ViewState["PageCout"] = 1; //首页
}protected void lblLast_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = pageCout;//尾页
}
public void lkPre_Click(object sender, EventArgs e)
{
currentPage = int.Parse(ViewState["CurrentPage"].ToString()) - 1;
DDBind(false, currentPage);
}
protected void lblFirst_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = 1; //首页
}
有什么不同啊?知道那出错了吧!要做分页要那么麻烦吗?
public void lkPre_Click(object sender, EventArgs e)
{
currentPage = int.Parse(ViewState["CurrentPage"].ToString()) - 1;
DDBind(false, currentPage);
}
protected void lblFirst_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = 1; //首页
}
有什么不同啊?知道那出错了吧!要做分页要那么麻烦吗?
ViewState["PageCout"] = 0; //首页
}protected void lblLast_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = pageCout-1;//尾页
}
下载地址:http://blog.csdn.net/bluedoctor/archive/2010/01/24/5251913.aspx
protected void lblFirst_Click(object sender, EventArgs e)
{
ViewState["PageCout"] = 1; //首页DDBind(false, Convert.ToInt32(ViewState["PageCout"]));
}
要是你上下翻没问题话! 首页跟尾页我想是出在这个问题!
起码你传了个值后数据会产生变化的(不考虑值是对错)!
{
ViewState["CurrentPage"] = 0; //首页
DDBind(false, Convert.ToInt32(ViewState["CurrentPage"])); } protected void lblLast_Click(object sender, EventArgs e)
{
ViewState["CurrentPage"] = ViewState["PageCout"];//尾页
DDBind(false, Convert.ToInt32(ViewState["CurrentPage"]));
}谢谢 啊