data上提供的loadData方法加载数据,如果加载的数据需要保存需要把加载的数据设置为新增的状态
可以在action的java方法中返回Table前,遍历Table设置行状态
代码如下:
public static Table loadDataRQ(){ String ksql = "select rq.* from AP_RQ rq where rq.fName like '%aa%'"; Table table = KSQL.select(ksql, null, "/appdemo/test/data", null); table.getProperties().put(Table.PROP_NAME_ROWID, "rq"); Iterator<Row> rows = table.iterator(); while (rows.hasNext()) { Row row = rows.next(); row.setState(ModifyState.NEW); } return table; }
如果没有在Table中设置,loadData后也可以遍历data中的数据设置,但是不推荐这样做,数据多时遍历数据性能会慢
代码如下:
var loadData = this.comp("loadData"); var grid = this.comp("grid4"); var options = {}; options.context = this.getContext(); options.action = "loadDataRQ"; options.callback = function(data) { if (data.state) { loadData.loadData(data.response); grid.refresh(); } else { Request.errorMessage(resultData, "执行失败!", null, null); } }; var result = biz.Request.sendBizRequest(options); loadData.each(function(options){ options.data.setRowState(options.row, Data.STATE.NEW); }); loadData.first();
需要注意的是loadData后调用data的first(),默认游标定位到第一行上,这样关联的data保存操作的按钮默认就会变亮
评一波