simplejf


分页和排序

<h3>说明</h3> <ul> <li>前端采用easyui表格来实现分页</li> <li>后端分页采用拦截器封装PageOrder对象</li> </ul> <h4>后端分页</h4> <p>通过分页拦截器,判断传入参数中是否有 rows 和 page两个参数,如果存在自动封装为PageOrder 对象。</p> <p><strong>属性解释:</strong></p> <pre><code>rows: 每页显示多少行 page: 在第几页 sort: 排序列名称 order: 排序方式(desc,asc)</code></pre> <h6>Controller</h6> <ul> <li>获取PageOrder对象:直接通过 getAttr(&quot;PageOrder&quot;) 获取 PageOrder对象</li> <li>将结果转成JSON PageKit.toJSON(page)</li> </ul> <pre><code class="language-java">// public void page() throws Exception{ Page&lt;AuthSign&gt; page = AuthSign.dao.paginate(getAttr("PageOrder"), getModel(AuthSign.class,"sign")); renderJson(PageKit.toJSON(page)); }</code></pre> <ul> <li>如果前端不是分页,但是想调用paginate方法,这时候不能通过getAttr(&quot;PageOrder&quot;)获取 PageOrder 对象,需要自己创建,例如</li> </ul> <pre><code class="language-java">public void export() throws Exception{ Log log = getModel(Log.class); log.put("start_time", getParaToDateLong("start_time")); Page&lt;Log&gt; page = Log.dao.paginate(new PageOrder(), log); render(new CSVRender("log.tpl",page.getList())); }</code></pre> <h6>Model</h6> <ul> <li>获取SqlPara对象</li> <li>调用分页方法</li> </ul> <pre><code class="language-java">public Page&lt;AuthSign&gt; paginate(PageOrder order, AuthSign authSigns) { SqlPara sqlPara = getSqlPara("pdc.auth_sign.paginate",authSigns,order); return paginate(order.getPageNum(), order.getPageSize(), sqlPara); }</code></pre> <h6>SQL模板</h6> <ul> <li>只负责排序,不负责分页。</li> </ul> <pre><code class="language-sql">/**如果没有order 默认按照 a.sign_order 排序;如果没有orderType 默认按照 asc 排序*/ #sql("paginate") select a.* from t_pdc_auth_sign a where a.delete_flag &lt;&gt; 1 order by #(order ?? "a.sign_order") #(orderType ?? "asc") #end</code></pre> <h4>前端分页</h4> <ul> <li>表格配置中默认支持分页,如果不想分页,可以修改配置。具体的配置完全是easyui表格配置</li> <li>通过 sortable:true 判断该列是否需要分页</li> </ul> <pre><code class="language-html">&lt;table id="ey_grid" style="min-height:400px;"&gt; &lt;thead&gt; &lt;tr&gt; &lt;th data-options="field:'ck',checkbox:true"&gt;&lt;/th&gt; &lt;th data-options="field:'id',hidden:true"&gt;ID&lt;/th&gt; &lt;th data-options="field:'sign_remark',width:80,sortable:true"&gt;关键字名称&lt;/th&gt; &lt;th data-options="field:'sign_name',width:80,sortable:true"&gt;关键字标识&lt;/th&gt; &lt;th data-options="field:'sign_order',width:80,sortable:true"&gt;排序号&lt;/th&gt; &lt;th data-options="field:'create_time',width:80,sortable:true,formatter: function(value,row,index){ return $.common.time(value) } "&gt;操作时间&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;/table&gt;</code></pre>

页面列表

ITEM_HTML