PDF.NET框架中的分页如何实现?

masterjian 2016-05-19 10:24:23
哪位大神可以给我一个比较完整,通用的PDF.NET框架的分页方法,最好是能通用一些的。
并且,我写的这个也是有错误的,还请帮我指正:

OQL q = new OQL(user);
OQLCompare cmpobj = new OQLCompare(q);
OQLCompare cmpResult = cmpobj.Comparer(user.Name,OQLCompare.CompareType.Like, "zhang%")
| cmpobj.Comparer(user.Pwd,OQLCompare.CompareType.Equal, "888888");
//随意选取一个int ,long 类型的实体类属性,存放结果即可
user = EntityQuery<User>.QueryObject(q.Select().Count(user.ID,"").END);
int maxCount = user.ID;
q = new OQL(user);
//条件对象构造完成
List<User> userList = q.Select().Where(cmpResult).END.Limit(10, 1).ToList<User>();
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluedoctor 2016-05-19
  • 打赏
  • 举报
回复
可以再写一个求记录总数的OQL语句,大概是这样的:

OQL qcount=OQL.From(user)
                     .Select().Count(user.ID,"")
                     .Where(cmp => cmp.Property(user.UID) < 100)
                     .END;
var newUser= EntityQuery<User>.QueryObject(qcount);
int count=user.ID;
这里是借用user.ID属性来存放统计的记录数量值。 然后,你分页的时候,使用三个参数的Limit方法即可: public GOQL<T> Limit(int pageSize, int pageNumber,int allCount){...}
masterjian 2016-05-19
  • 打赏
  • 举报
回复
谢谢:刹那的菜鸟 如果是做分页的话,还需要用到当前查询的总行数不是吗? 这个示例只有分页,没有总行数的获取
masterjian 2016-05-19
  • 打赏
  • 举报
回复
谢谢:刹那的菜鸟
刹那的菜鸟 2016-05-19
  • 打赏
  • 举报
回复
楼主,有一个简单的方法哈

static void TestGOQL()
        {
            string sqlInfo="";
            //下面使用 ITable_User 或者 Table_User均可
            List<ITable_User> userList =
                OQL.FromObject<ITable_User>()
                    //.Select()
                    .Select(s => new object[] { s.UID, s.Name, s.Sex }) //仅选取3个字段
                    .Where((cmp, user) => cmp.Property(user.UID) < 100)
                    .OrderBy((o,user)=>o.Asc(user.UID))
                .Limit(5, 1) //限制5条记录每页,取第一页
                .Print(out sqlInfo)
                .ToList();

            Console.WriteLine(sqlInfo);
            Console.WriteLine("User List item count:{0}",userList.Count);
        }
刹那的菜鸟 2016-05-19
  • 打赏
  • 举报
回复
引用 4 楼 bluedoctor 的回复:
可以再写一个求记录总数的OQL语句,大概是这样的:

OQL qcount=OQL.From(user)
                     .Select().Count(user.ID,"")
                     .Where(cmp => cmp.Property(user.UID) < 100)
                     .END;
var newUser= EntityQuery<User>.QueryObject(qcount);
int count=user.ID;
这里是借用user.ID属性来存放统计的记录数量值。 然后,你分页的时候,使用三个参数的Limit方法即可: public GOQL<T> Limit(int pageSize, int pageNumber,int allCount){...}
不错

111,129

社区成员

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

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

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