『奇怪问题』关于AspNetPager分页控件 我设了每页显示2条记录,结果点击第1页,显示2条记录、点击第2页,显示4条,点击第3页,显示6条……不知大家有没有见过这样的情况?我检查了绑定的代码和存储过程,看上去都很正常的样子,不知道问题出在哪里 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在每次用控件(repeater等)显示完后用 控件ID.clear()方法清空该控件的Items. private void Page_Load(object sender, System.EventArgs e) {conn=new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); if(!Page.IsPostBack) { BindData2(); cmd=new SqlCommand("Get_Notes3",conn); cmd.Parameters.Add("@pageindex",1); cmd.Parameters.Add("@pagesize",1); cmd.Parameters.Add("@docount",true); conn.Open(); pager.RecordCount=(int)cmd.ExecuteScalar(); conn.Close(); BindData(); } } void BindData() { cmd=new SqlCommand("Get_Notes3",conn); cmd.CommandType=CommandType.StoredProcedure; cmd.Parameters.Add("@pageindex",pager.CurrentPageIndex); cmd.Parameters.Add("@pagesize",pager.PageSize); cmd.Parameters.Add("@docount",false); conn.Open(); guestbook.DataSource=cmd.ExecuteReader(); guestbook.DataBind(); conn.Close(); conn.Dispose();pager.CustomInfoText="留言总数:<font color=\"blue\"><b>"+pager.RecordCount.ToString()+"</b></font>";pager.CustomInfoText+=" 总页数:<font color=\"blue\"><b>"+pager.PageCount.ToString()+"</b></font>";pager.CustomInfoText+=" 当前页:<font color=\"red\"><b>"+pager.CurrentPageIndex.ToString()+"</b></font>"; }private void pager_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e) { pager.CurrentPageIndex=e.NewPageIndex; BindData(); }存储过程:CREATE procedure Get_Notes3(@pagesize int,@pageindex int,@docount bit)asset nocount onif(@docount=1)select count(NewsID) from tb_guestbookelsebegindeclare @indextable table(id int identity(1,1),nid int)declare @PageLowerBound intdeclare @PageUpperBound intset @PageLowerBound=(@pageindex-1)*@pagesizeset @PageUpperBound=@PageLowerBound+@pagesizeset rowcount @PageUpperBoundinsert into @indextable(nid) select NewsID from tb_guestbook order by NotesID descselect O.* from tb_guestbook O,@indextable t where O.NewsID=t.nidand t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.idendset nocount offGO 需要技巧 初学!服务器上刚安装了vs2008,建了一个gridview网页,远程看不到,出错。请看信息。 为什么LinkButton控件在某些IE下浏览点击没有反应,出现错误提示!! 动态绑定gridview SqlDataReader Dr = Cmd.ExecuteReader();'=' 附近有语法错误。 这个问题郁闷了我一个下午 asp.net如何解决在页面中添加不定多个控件的问题。 如何复制datalist控件的属性 不关闭浏览器如何让Cookie为Nothing(郁闷中) sortedlist 问题 小菜一碟:让web页面部分内容只读 调试时,自动窗口不显示怎样调出来?在线等
{
conn=new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
if(!Page.IsPostBack)
{
BindData2();
cmd=new SqlCommand("Get_Notes3",conn);
cmd.Parameters.Add("@pageindex",1);
cmd.Parameters.Add("@pagesize",1);
cmd.Parameters.Add("@docount",true);
conn.Open();
pager.RecordCount=(int)cmd.ExecuteScalar();
conn.Close();
BindData();
}
} void BindData()
{
cmd=new SqlCommand("Get_Notes3",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@pageindex",pager.CurrentPageIndex);
cmd.Parameters.Add("@pagesize",pager.PageSize);
cmd.Parameters.Add("@docount",false);
conn.Open();
guestbook.DataSource=cmd.ExecuteReader();
guestbook.DataBind();
conn.Close();
conn.Dispose();
pager.CustomInfoText="留言总数:<font color=\"blue\"><b>"+pager.RecordCount.ToString()+"</b></font>";
pager.CustomInfoText+=" 总页数:<font color=\"blue\"><b>"+pager.PageCount.ToString()+"</b></font>";
pager.CustomInfoText+=" 当前页:<font color=\"red\"><b>"+pager.CurrentPageIndex.ToString()+"</b></font>";
}private void pager_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e)
{
pager.CurrentPageIndex=e.NewPageIndex;
BindData();
}存储过程:
CREATE procedure Get_Notes3
(@pagesize int,
@pageindex int,
@docount bit)
as
set nocount on
if(@docount=1)
select count(NewsID) from tb_guestbook
else
begin
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select NewsID from tb_guestbook order by NotesID desc
select O.* from tb_guestbook O,@indextable t where O.NewsID=t.nid
and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id
end
set nocount offGO