asp.net+easyui分页
各位大神,在下刚刚尝试用asp.net+easyui进行开发,遇到后台分页代码的问题,求高人帮忙:
下面是我写的代码:projectadminEntitie _ctx = new projectadminEntitie();
LinqToDataTable toDataTable = new LinqToDataTable();
public DataTable GetFirst(Hashtable ht,out int count)
{
string projectno = ht["Projectno"].ToString();
string projectname = ht["projectname"].ToString();
string flg = ht["flg"].ToString();
int pageIndex = Convert.ToInt32(ht["page"].ToString());
int pageSize = Convert.ToInt32(ht["rows"].ToString());
var result = from p in _ctx.P_ProjectClass
where (string.IsNullOrEmpty(projectno) ? true : p.projectID.Trim().Equals(projectno))
&& (string.IsNullOrEmpty(projectno) ? true : p.projectID.Trim().Equals(projectno))
&& (p.classID == 1)
select new
{
ID = p.ID,
ProjectID = p.projectID,
ProjectName = p.projectname,
ProjectHead = p.HeadName
};
count = result.Count();
return toDataTable.ToDataTable(result.ToList());
}
在把list数据转换成datatable要有一个分页的代码功能,请问该怎么写??
------解决思路----------------------
重载一下这个方法喽.. 加2个参数..pageIndex, pageRows, 第几页, 一页多少行..
然后.. skip().take()
------解决思路----------------------
你自己去了解一下分页的原理、然后找找人家的例子看。不能完全靠“求代码”的方式。
你的代码中,重复地查询了两遍数据库,这是对于性能极大地浪费。
------解决思路----------------------
list.Skip(10).Take(10)
------解决思路----------------------
引用:你自己去了解一下分页的原理、然后找找人家的例子看。不能完全靠“求代码”的方式。
你的代码中,重复地查询了两遍数据库,这是对于性能极大地浪费。
LZ这个貌似没有查询两次数据库吧,他的那个 Hashtable 是一个参数。而且下面用的话,感觉应该不是查数据操作得到的吧,应该只查询了一次。
我之前用的分页,是用的PagedList用法是
var result = from p in _ctx.P_ProjectClass
where (string.IsNullOrEmpty(projectno) ? true : p.projectID.Trim().Equals(projectno))
&& (string.IsNullOrEmpty(projectno) ? true : p.projectID.Trim().Equals(projectno))
&& (p.classID == 1)
select new
{
ID = p.ID,
ProjectID = p.projectID,
ProjectName = p.projectname,
ProjectHead = p.HeadName
};
count = result.Count();
var list= qList.ToPagedList(1, 2);
list.Items.ToList(); //这个是list集合
------解决思路----------------------
easyui 分页的话,会传2个参数过来,一个是page页码,一个pagecount,
你根据这个 参数 构造 sql语句 可以 直接查询到所需要的数据
然后返回的 结构是 : {total:总的数据量,data:你的数据}的结构 就行了,
easyui 会自动给你进行分页。