首页 新闻 会员 周边 捐助

asp.net mvc

0
[已解决问题] 解决于 2012-06-04 09:43

在asp.net mvc里学着写gridview ,在控制器的Index方法里有下面的代码

var model1 = (from c in db.tbUser select c).ToPagedList(page, 5,"User_ID", sort)【1】
return View(model1);

【1】的ToPagedList是扩展方法 调用后返回 return new PagedList<T>(pageOfItems, truePageIndex, pageSize, totalItemCount,identityColumnName, sort);【2】

而 PagedList<T>

如下图

 

 

【1】 我改成

var model2 = (from c in db.tbUserselect c).OrderBy(sort).ToPagedList(page, 5, "User_ID");
就对了 为什么要排序?

koi的主页 koi | 初学一级 | 园豆:4
提问于:2012-05-31 16:18
< >
分享
最佳答案
0

 数据库里面的数据是无序的,你select top  n * 时  你多查询几次,会发现数据的顺序会变的   (除非你指定排序规则 order by)

假如你现在查询的数据集的第2条, 下面你跳了3条,查询第5条,按照上面说的无序性,这两次查询的数据有可能一样 所以要用order by将数据集人为的排序下

奖励园豆:5
Hejin.Wong | 菜鸟二级 |园豆:229 | 2012-06-03 19:23

不会啊 我在数据库里直接select top  n * 时  都不会变 默认好像就是升序的

koi | 园豆:4 (初学一级) | 2012-06-03 19:26

@koi: 这个你可以去搜搜相关的知识    理论是这样的 

http://msdn.microsoft.com/zh-cn/library/bb738680%28v=VS.90%29.aspx

这是EF的 skip用法  和LINQ 差异不大的

Hejin.Wong | 园豆:229 (菜鸟二级) | 2012-06-03 19:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册