普通data上有limit可以设置页记录数,等于-1时不执行分页一次取全部数据,运行时谨慎修改,会影响数据导航条分页取数据状态
自己通过调用action给data加载数据的时候要通过limit和offset的值去控制分页,具体如下
action中对应的java代码的实现:
public static Table loadMain(Integer limit,Integer offset){ //根据传的limit和offset控制查的数据记录数 String ksql = "select zsj,zsj.fName,zsj.fCode from AP_ZHJ zsj limit "+Integer.toString(offset)+","+Integer.toString(limit); Table table = KSQL.select(ksql, null,"/appdemo/test/data", null); //设置主键 table.getProperties().put(Table.PROP_NAME_ROWID, "zsj"); //设置总记录数 , 计算分页 Table tCount = KSQL.select("select count(a) as cnt from AP_ZHJ a", null, "/appdemo/test/data", null); BigDecimal num = tCount.iterator().next().getDecimal("cnt"); table.getProperties().put(Table.PROP_DB_COUNT, num); return table; }
在data的onCustomRefresh事件中调用action加载数据
Model.prototype.data1CustomRefresh = function(event){ var data1 = this.comp("data1");//获取data var grid1 = this.comp("grid1");//获取展现数据的grid组件 //勾选action参数,给limit和offset参数传参 var param = new biz.Request.ActionParam(); var limit = data1.limit;//获取data的limit值 var offset = data1.getOffset();//获取data当前的offset值 param.setInteger("limit", limit); param.setInteger("offset", offset); biz.Request.sendBizRequest({ "context" : this.getContext(), "action" : "loadMainAction", "parameters" : param, "callback" : function(callbackData) { callbackData.ignoreError = false; if (callbackData.state) { data1.loadData(callbackData.response, false);//把返回的数据给data grid1.refresh();//刺激grid显示数据 } } }); };
data的定义注意limit的设置:
<div component="$UI/system/components/justep/data/data" autoLoad="true" xid="data1" idColumn="fID" limit="5" onCustomRefresh="data1CustomRefresh"> <column label="主键" name="fID" type="String" xid="xid1"/> <column label="名称" name="fName" type="String" xid="xid2"/> <column label="编码" name="fCode" type="String" xid="xid3"/> </div>
评一波