简单DataGride分页问题,在线等.急....解决立马解贴

wangping_li 2008-07-18 12:51:36

private void DataLoad()
{
DataCollection<TransOrderFullSDO> source = this.Input;
try
{
DataCollection<TransOrderFullSDO> rlt = this.getProxy().FindFullAll();
if ((source == null))
{
CurrentPage = 0;
LG.Cache.CorpCache.PageIndex = 0;
RecordCount = rlt.Count;
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
PageCount = RecordCount / PageSize + 1;

TotalLbl.Text = RecordCount.ToString();
LG.Cache.CorpCache.PageCount = PageCount.ToString();
this.btnPrevious.Enabled = true;
if (CurrentPage == (PageCount - 1))
this.btnNext.Enabled = false;
if (CurrentPage == 0)
this.btnPrevious.Enabled = false;
this.CurrentLbl.Text = (CurrentPage + 1).ToString();

bindingSource.DataSource = rlt;

PageSize = 2;
}
else
{
CurrentPage = 0;
LG.Cache.CorpCache.PageIndex = 0;//页索引
RecordCount = rlt.Count; //总页数
PageSize = 2;//每页条数
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
PageCount = RecordCount / PageSize + 1;

TotalLbl.Text = PageCount.ToString();
LG.Cache.CorpCache.PageCount = PageCount.ToString();
this.btnPrevious.Enabled = true;
if (CurrentPage == (PageCount - 1))
this.btnNext.Enabled = false;
if (CurrentPage == 0)
this.btnPrevious.Enabled = false;
this.CurrentLbl.Text = (CurrentPage + 1).ToString();
//rlt就是从数据库查询出来的一个集合,绑定到DataGride的
source.Load(rlt);

}
if ((OnDataLoad != null))
{
this.OnDataLoad(this, new E2ETEventArgs<DataCollection<TransOrderFullSDO>>(rlt));
}
MessageBox.Show(S_LOADED);
}
catch (E2EException ex)
{
MessageBox.Show(ex.Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}




上面是我加载DataGride的方法,就是绑定DataGride的数据.
rlt就是从数据库查询出来的一个集合,绑定到DataGride的,想问的问题是怎么给DataGride设置每页显示的页数,好像没有PageSize属性.知道的大虾们报一下.感激不尽.解决立马解贴.谢谢
...全文
153 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfywy 2008-07-18
  • 打赏
  • 举报
回复
如果没有 PageSize属性的话,那只能用数据库绑定的方法了,比如select top 10 * from (select top 20 * from tb order by [a] desc) order by [a] asc表示是前十条,每次翻页绑定数据库得到的table也是可以实现的!
lfywy 2008-07-18
  • 打赏
  • 举报
回复
你的程序代码里已经设置死了 PageSize = 2;//每页条数
已经是2条了,最好把这个去掉,选中DataGrid对象,属性里有 PageSize设置条数就OK了!
billy1985 2008-07-18
  • 打赏
  • 举报
回复
如果页面显示的记录较多的话,可考虑使用cache
pdsnet 2008-07-18
  • 打赏
  • 举报
回复
顶下
wangping_li 2008-07-18
  • 打赏
  • 举报
回复
差不多了.这样也行
kuchen1984 2008-07-18
  • 打赏
  • 举报
回复
试试看
[code=C#]PageSize=1
CurrentPage=0//当前页数
source.Load(rlt.Take(PageSize));
if (CurrentPage<(RecordCount-1 ))
CurrentPage++;

bindingSource.DataSource = (rlt.Skip((CurrentPage)* PageSize)).Take(PageSize); [/co
wangping_li 2008-07-18
  • 打赏
  • 举报
回复
我没有用于sql啊,第一页用Take过虑都是对的.我看了例子,可以用于数组,我对rlt过虑,rlt是一个集合.
所以应该是可以的
kuchen1984 2008-07-18
  • 打赏
  • 举报
回复
只能用于Linq to object,你要改代码
kuchen1984 2008-07-18
  • 打赏
  • 举报
回复
SkipWhile 喝TakeWhile 都不能用于Linq to sql
wangping_li 2008-07-18
  • 打赏
  • 举报
回复

现在把所有数据存到集合里面了.有点像8楼的意思
比如我PageSize=1//每页显示一条
CurrentPage=0//当前页数
我可以这样: source.Load(rlt.Take(PageSize));//这样就是指定每页显示一条,并绑定
当我选择下一条的时候:
if (CurrentPage<(RecordCount-1 ))
CurrentPage++;

bindingSource.DataSource = (rlt.Take(CurrentPage * PageSize)).SkipWhile((x, i) => i < CurrentPage); //先是用Take指定显示的项数然后SkipWhile跳过满足指定条件的元素,当我选择下一页是第二页时
SkipWhile(x,i)->i<CurrentPage,此时的CuttentPage是2,等于就跳过了1,只显示第二条数据并重新绑定.
结果有点不对,逻辑有点乱了.望大虾们给点思路.我现在有点乱了.一时没理清.谢谢,提意见就是最好的答案,不一定要代码
谢谢
levenwood 2008-07-18
  • 打赏
  • 举报
回复
想问的问题是怎么给DataGride设置每页显示的页数,好像没有PageSize属性.


程序里面的PageSize是自己定义的,每页要显示的条数

-----------------------------------
如果是存储过程的话,pageSize是输入参数
如果是拼接sql语句的话,就是“select top ”+pageSize+“* from。。。。。。。”
不知道楼主是不是想知道这些?
sxmonsy 2008-07-18
  • 打赏
  • 举报
回复
PageSize是你自己定义的每页面显示数据数量,你在查询的时候用储存过程.
每页显示多少数据你就从数据库读取 第I页 X pagesize 到第I页 X pagesize+pagesize的数据.
ikaaki520 2008-07-18
  • 打赏
  • 举报
回复
学习下
wangping_li 2008-07-18
  • 打赏
  • 举报
回复
是C/s的.只能通过分布储存过程?有没有这方面的例子啊.谢谢
zzyhuian06142 2008-07-18
  • 打赏
  • 举报
回复
你的是C/S的还是B/S的
C/S里面没有PageSize只能通过分页存储来实现分页
b/s里面到是有PageSize
wangping_li 2008-07-18
  • 打赏
  • 举报
回复
程序里面的PageSize是自己定义的,每页要显示的条数
tinkcn 2008-07-18
  • 打赏
  • 举报
回复
程序里的PageSize从那冒出来的?
Tracy5453 2008-07-18
  • 打赏
  • 举报
回复
DataGride设置每页显示的页数?DataGride.CurrentPageIndex + 1可以吗?
wangping_li 2008-07-18
  • 打赏
  • 举报
回复
晕.没人知道啊?

110,548

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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