前提:
今天又网友又提出了一个问题,说行内编辑保存之前,怎么新增一些数据提交到后台?
对方说看了源码,也没找到怎么处理,这里就写文给解答一下。
解答:
于是我看了一眼源码,只能说你没找到地方:
第1212行:
dg.PKColumn.Editor.BtnSave.onBeforeExecute(value, index, post_data)
在重写这个事件里,第三个参数,就是要提交的参数,是个json
因此,要追加数据,只需要为json追加数据就可以了:
dg.PKColumn.Editor.BtnSave.onBeforeExecute=function (v,i,d){
d.XXX="myvalue";//追加数据。
}
如果你要的数据刚好在当前行里:(隐藏显示【配置了#号传递数据】或者非隐藏)
那么可以根据行索引先拿到行数据:
var row = null; if (isTreeTrid) { row = $.extend(true, {}, dg.datagrid("find", index)); } else { //data只存档1级的数据,不适合treegrid row = $.extend(true, {}, $.data(dg.$target[0], "datagrid").data.rows[index]); }
拿行的时候根据情况选择其中一种(如果只拿不修改,就不用$.extend克隆了)
下面$.data的写法,是datagrid下兼容分组的写法。