天天看點

ligerui實作資料庫端分頁功能

 ligerui的兩種分頁方式

  如果資料量不是很大,就直接采用local分頁,一次性的把資料全部發送到前台來,之後ligerui自身的grid會自動分頁。說一下total,在背景傳送jsonstring時傳送定義好的total(總條數),你可以定義多少都可以,但是到前台它會自動将總條數指派給total,這是local下的方式。

  而如果資料量很大,一次性加載直接不顯示資料或反應很慢的,就需要用server分頁了,當用server分頁時,每次請求都會比local時多發送兩個參數:page和pagesize,不需要自己去發送,隻需要在背景擷取就行,

  intpage=integer.parseint(request.getparameter("page"));

  intpagesize=integer.parseint(request.getparameter("pagesize"));

  inttotal;

  這時你可以把page和pagesize寫進你的sql語句:

  sql=".........";

  sql+="limit"+(page*pagesize-pagesize)+","+pagesize;

  這樣查出的結果放入jsonstring中,這裡要注意total了,total需要自己定義,需要自己重新查一下結果的總條數後指派給total傳到頁面,其他的ligerui會幫你搞定!

  以下為實作部分内容

  ============

  1.js頁面

usergrid=$("#usergrid").ligergrid({

method:'get',

height:580,

width:'100%',

usepager:true,

columns:[

{display:resource.username,name:"username",align:'left',width:100,minwidth:60},

{display:resource.email,name:"email",align:'left',width:250,minwidth:60},

{display:resource.deparentment,name:"deparentment",align:'left',width:100,minwidth:60},

//{display:resource.password,name:"password",align:'left',width:100,minwidth:60},

{display:resource.usertype,name:"privilege",align:'left',width:100,minwidth:60,

render:function(item){

varprivilege=item.privilege;

if(privilege=='1'){

returnresource.tempuser;

}elseif(privilege=='2'){

returnresource.commonuser;

}elseif(privilege=='4'){

returnresource.advanceduser;

}elseif(privilege=='8'){

returnresource.knowledgemanager;

}elseif(privilege=='16'){

returnresource.administrator;

}

},

{display:resource.accountstate,name:"accountstate",align:'left',width:100,minwidth:60,

varaccountstate=item.accountstate;

if(accountstate=='1'){

returnresource.normal;

}elseif(accountstate=='2'){

returnresource.unactive;

}elseif(accountstate=='4'){

returnresource.stopped;

{display:resource.accountexpiredate,name:"accountexpiredate",align:'left',width:100,minwidth:60}

],

url:$('#initpath').val()+'/usercontroller.do?method=getuserpaging&privilege=-1',//必須這樣,否則不能傳page等參數

pagesize:10,rownumbers:true,

 2.action

publicmodelandviewgetuserpaging(dyrkbuseruser,httpservletrequestrequest){

intpage=integer.parseint(request.getparameter("page"));

intpagesize=integer.parseint(request.getparameter("pagesize"));

if(user.getusername()==null){

user.setusername("");//空串時可以搜尋到所有此類使用者

integerprivilege=user.getprivilege();

if(privilege==-1){

user.setprivilege(null);

list<dyrkbuser>userlist=userservice.getuserpaging(user,page,pagesize);

inttotal=userservice.getusertotalnum();

map<string,object>model=newhashmap<string,object>(1);

model.put("rows",userlist);//資料要的就是rows項

model.put("total",total);

returnnewmodelandview(constants.json_view,model);

最新内容請見作者的github頁:http://qaseven.github.io/