在公司实习的时候,看到厉哥瑞的网格在公司框架中被用于分页。我个人觉得很好用,就摸索着录了一遍
简单来说,liger grid就是将准备好的数据提交给指定的目标,请求数据,得到数据后显示(通过ajax)。
LigerGrid是ligerui系列插件的核心控件,用户可以快速创建美观强大的表格,支持排序、分页、多表头、固定列等。
这里只实现了基于ligerUI的分页
厉哥锐有两种分页方式:本地和服务器。
如果数据量不大,直接使用本地分页,将所有数据一次性发送到前台,然后厉哥瑞自己的网格会自动分页。谈谈总量。当jsonString在后台传输时,可以传输定义的总数(总数)。您可以定义任意多个,但它会在前台自动将总数分配给“总计”。这是当地的方式。
但是如果数据量大,一次加载不直接显示数据或者响应慢,需要服务器进行分页。当被服务器分页时,每个请求会比本地多发送两个参数:page和pagesize,所以不需要自己发送,只需要在后台获取即可。
int page=Integer . Parseint(request . GetParameter(' page '));int page size=Integer . Parseint(request . GetParameter(' page size '));int合计;
此时,您可以将page和pagesize写入您的sql语句:sql=' . ';SQL=' limit '(page * page size-page size)',' page size;
以这种方式找到的结果被放入jsonString中。这里要注意总量,总量需要自己定义。我们需要重新检查结果的总数,然后将其分配给total并将其发送到页面。其他的厉锐会帮你的!
关于更多力格瑞网格,参与官网测试API http://api.ligerui.com/? To=网格参考选择前端分页或后台分页//www . JB 51 . net/article/86326 . htm。
本地实现只需要将所有查询到的数据提交给前端框架,这将自动帮助您实现分页。但是,我个人不提倡客户端分页。网络应用服务器和客户端之间有一个网络。如果网络传输的数据量较少,客户端将获得更快的响应。一般来说,数据库服务器和Web应用服务器的处理能力一般要比客户端强很多。从这两点来看,客户端的分页方案是最不可取的
下面的上层服务器端分页代码:
因为只使用分页,所以只导入了部分插件和图片
介绍所需的jquery、liger和css
link href=' js/lige Rui-all . CSS ' rel='样式表' type=' text/CSS ' script type=' text/JavaScript ' src=' http : js/jquery-3 . 0 . 0 . js '/script script type=' text/JavaScript ' src=' http : js/lige Rui . all . js '/script JSP有以下示例:dataAction(默认为本地),需要指定请求的url、页面和页面大小
脚本类型=' text/JavaScript ' $(function(){ vargrid=$(' # main grid ')。liger grid({ column s 3360[{ name : ' id ',display: '序列号',render:function(记录,rowindex,值,列){ return row index 1;}},{name:' title ',display:' title'}],height :210,dataaction 3360' server ',URL :' luservlet ',page3360' 1 ',page size : ' 5 ' });});/script/headsdydivstyle=' width :600 px ' div id=' main grid '/div/div model类和测试数据库
//为了省事,导入Java . SQL . date;公共类Blog { private int id私有int category _ id私有字符串标题;私有字符串内容;私有创建日期_时间;//getter和setter方法@ overridedpublictringtostring(){ return ' blog[id=' id ',category _ id=' category _ id ',title=' title ',content=' content ',created _ time=' created _ time ']';} }dao类,用jdbc测试
导入Java。SQL。连接;导入Java。SQL。Drivermanager导入Java。SQL。PreparedStatement导入Java。SQL。resultset导入Java。SQL。SqLexception导入模型。博客;公共类MySQL TeSt { preparedStatement PS=null;结果集rs=空连接连接=null public MySQL test(){ try { class。FOrname(' com。MySQL。JDBC。驱动程序');连接=驱动程序管理器。GetConnection(' JDBC :我的SQL ://localhost :3306/blogs _ stu ',' root ',' ');} catch(异常e){ e . print stack trace();} } //返回一个博客数组,用于拼接json字符串//不用模型时可以直接在此处拼接json字符串返回//传入页,面,张,版和页面大小用于判断最后一页数组长度,否则会报错public Blog[] getInfo(String sql,int page,int page size){ int total=getTotal();if(page * page size=total){ page size=total % page size;}博客[]博客=新博客[页面大小];请尝试{ PS=连接。prepare statement(SQL);RS=PS。execute query();(同Internationalorganizations)国际组织索引=0;而(RS。next()){ Blog[index]=new Blog();博客[索引]。setId(RS。GetInt(' id ');博客[索引]。setCaTEgOry _ id(RS。GetInt(' CaTEgOry _ id ');博客[索引]。setTitle(RS。getString(' title ');博客[索引]。设置内容(RS。getString(' content ');博客[索引]。setCreated _ time(RS。GetDate(' created _ time ');指数;} } catch(异常e){ e . print stack trace();}最后{ if (connect!=null)尝试{连接。close();PS。close();RS。close();} catch(SQLException e){ e . printstacktrace();} }返回博客;} //获取总记录数total public int getTotal(){ int total=0;字符串sql=尝试{ sql='从博客中选择计数(id)';PS=连接。prepare statement(SQL);RS=PS。execute query();而(RS。next()){ total=RS。GetInt(1);} } catch(SQLException e){ e . printstacktrace();}退货总额;}}后台小型应用程序实现
导入Java。io。ioexception导入Java。io。版画作家;导入javax。servlet。servletexception导入javax。servlet。注释。webservlet导入javax。servlet。http。HttpServlet导入javax。servlet。http。HttpServletrequest导入javax。servlet。http。HttpServletResponse导入模型。博客;导入mysqljdbc .MySQL test @ WebServlet('/LUServlet ')公共类LUServlet扩展了httpersvlet { public void doGet(httpersvletrequest请求,HttpServletResponse响应)引发ServletException,IOException { request。setcharactertencoding(' utf-8 ');回应。setcontenttype(' text/html;charset=utf-8 ');//获取页面的页,面,张,版和页面大小,拼接结构化查询语言用int page=整数。(请求)的值。getParameter(' page ');int页面大小=整数。(请求)的值。GetParameter('页面大小');MySQL测试=新MySQL测试();//在拼接json字符串是传给前台一个总数记录总数,厉格瑞格会自动获取该total int total=测试。gettotal();request.setAttribute('total ',total);//用的mysql,查找限定条数语句用极限,从页面*页面大小-页面大小开始,取页面大小条字符串sql='从博客中选择* ';SQL=' limit '(page * page size-page size)',' page size;Blog[] blog=test.getInfo(sql,页面,页面大小);//将数据拼接成json字符串StringBuffer strbuffer=new StringBuffer();//李盖瑞网格接受的json格式是{ ' row ' :[],' Total ' : ' ' } strbuffer。追加(' { '行' :[');for(int I=0;iblog . LengTii){ strbuffer。追加(“{ ”标题“:”).追加(' '博客[i].getTitle() ''},');} strbuffer。替换(strbuffer.length()-1,strbuffer。length(),' ');strbuffer.append('],').追加(' '总计' : ')。追加(“总计”).追加("}");PrintWriter out=响应。getwriter();出去。write(strbuffer。ToString());出去。close();} public void doPost(HttpServletrequest请求,HttpServletResponse响应)抛出ServletException,IOException { doGet(请求,响应);}}运行结果(默认样式可以改,具体参照利盖瑞原料药):
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。