前提:

今天又网友又提出了一个问题,说行内编辑保存之前,怎么新增一些数据提交到后台?

对方说看了源码,也没找到怎么处理,这里就写文给解答一下。

解答:

于是我看了一眼源码,只能说你没找到地方:

 

第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下兼容分组的写法。

posted on 2019-08-15 16:50  路过秋天  阅读(1554)  评论(0编辑  收藏  举报
路过秋天