分页问题!Repeater

lovebanyi 2004-11-12 07:52:05
在网上看到的是说对,
大容量的数据用的是这种分页的方法。
select top 10 * from table1 where id>@id
(大家由其它好的方法也说一下吧)

假设是10个数据分一页
int pagesize=10;
int topage;//当前页数
int id;
int pageall;//总页数
id=pagesize*topage;//这样就是第几条了。

然后就可以实现分页了。但是 

*********** id=pagesize*topage;//这样就是第几条了。 ***
这一句由于ID是自动递增的。 <ID的记录由于某些原因是要被删除的。
就造成了分页的不准确。第二页的内容可能会把第一页的给显示出来。
我的做法是
select top 20 id form table 利用DataReader,这样就可以得到了ID了。20是假设20条记录第二页
可是这样感觉好晕
还要做一次求总页
...全文
173 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebanyi 2004-11-15
  • 打赏
  • 举报
回复
高手见谅都没有给出想要的解决答案
nowfox 2004-11-13
  • 打赏
  • 举报
回复
webdiyer(陕北吴旗娃) 的控件不错的
「已注销」 2004-11-13
  • 打赏
  • 举报
回复
一句由于ID是自动递增的。 <ID的记录由于某些原因是要被删除的。
就造成了分页的不准确。第二页的内容可能会把第一页的给显示出来。
//你能说清楚一点吗?
孟子E章 2004-11-13
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=D5C6E29D-99F5-44E8-4FED-75AF892A53CB
Study_Now 2004-11-13
  • 打赏
  • 举报
回复
给你个datalist分页例子,希望对你有启发,关健看注释!
public void Page_Load(Object src,EventArgs e)
{
//设定PageSize
PageSize =9;
//连接语句
string MyConnString = "server=localhost;uid=sa;pwd=123;database=users";
MyConn = new SqlConnection(MyConnString);
//第一次请求执行
if(!Page.IsPostBack)
{
ListBind();
CurrentPage = 0;
ViewState["PageIndex"] = 0;
//计算总共有多少记录
RecordCount = CalculateRecord();
lblRecordCount.Text = RecordCount.ToString();
//计算总共有多少页
PageCount = RecordCount/PageSize;
if (RecordCount % PageSize !=0)
++PageCount;
lblPageCount.Text = PageCount.ToString();
ViewState["PageCount"] = PageCount;
}
}
//计算总共有多少条记录
public int CalculateRecord()
{
int intCount;

MyConn.Open();
string strSel="exec product_my_co " +Request["sort"]+" ";
SqlCommand cmd=new SqlCommand(strSel,MyConn);
intCount=int.Parse(cmd.ExecuteScalar().ToString());
MyConn.Close();
return intCount;
}
ICollection CreateSource()
{
int StartIndex;
//设定导入的起终地址
StartIndex = CurrentPage*(int)PageSize;
string strSel="exec product_my "+Request["sort"]+"";
DataSet ds = new DataSet();
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,StartIndex,PageSize,"allproduct");//Fill方法自动打开连接,并自动关闭连接!
return ds.Tables["allproduct"].DefaultView;
}
public void ListBind()
{
allproduct.DataSource = CreateSource();
allproduct.DataBind();

lbnNextPage.Enabled = true;
lbnPrevPage.Enabled = true;
if(CurrentPage==(PageCount-1)) lbnNextPage.Enabled = false;
if(CurrentPage==0) lbnPrevPage.Enabled = false;
lblCurrentPage.Text = (CurrentPage+1).ToString();
}
public void Page1_OnClick(Object sender,CommandEventArgs e)
{
CurrentPage = (int)ViewState["PageIndex"];
PageCount = (int)ViewState["PageCount"];
string cmd = e.CommandName;
//判断cmd,以判定翻页方向
switch(cmd)
{
case "next":
if(CurrentPage<(PageCount-1)) CurrentPage++;
break;
case "prev":
if(CurrentPage>0) CurrentPage--;
break;
}
ViewState["PageIndex"] = CurrentPage;
ListBind();
lovebanyi 2004-11-13
  • 打赏
  • 举报
回复
晕。。没人了。。
vitamin_ok 2004-11-12
  • 打赏
  • 举报
回复
http://www.webdiyer.com

支持!!这个好用
webdiyer 2004-11-12
  • 打赏
  • 举报
回复
请试试这个免费分页控件:http://www.webdiyer.com

另外有自动生成存储过程的工具页可以生成分页存储过程,当然不用存储过程也一样可以分页。

lovebanyi 2004-11-12
  • 打赏
  • 举报
回复
晕。。明白点好吗?
okwinds 2004-11-12
  • 打赏
  • 举报
回复
用存储过程分页

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧