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保存操作的按钮默认就会变亮
评一波