easyui datagrid 在不关闭行编辑情况下,更新行,更新单元格。

var tmpIndex = editIndexs[rewriteTableId];
                    //获取 主要的按钮对象  单元格
                    var ed = $(rewriteTableId).datagrid('getEditor', {index:tmpIndex,field:"FPROJECTNUMBER"});
                    $(ed.target).textbox('setValue', rowData.FPROJECTNUMBER);
                    // 有editor的更新方法------------------------------------------------
                    $($(rewriteTableId).datagrid('getEditor', {index:tmpIndex,field:"FCREATEPROJECTID"}).target).textbox('setValue', rowData.FID);
                    // 没有editor 的列,更新方法       --------选择按钮的列名---------------------------------要反写的字段列明------------------------弹窗  选择的 数据。
                    $(ed.target).parents("td[field='FPROJECTNUMBER']").siblings("td[field='FPROJECTNAME_L1']").find("div").html(rowData.FPROJECTNAME_L1);
                    $(ed.target).parents("td[field='FPROJECTNUMBER']").siblings("td[field='FPROJECTNAME_L2']").find("div").html(rowData.FPROJECTNAME_L2);

//更新页面div值并不会 更新datagrid 实体值,所以调用方法更新
                    var rows = $(rewriteTableId).datagrid("getRows");
                    var columns = $(rewriteTableId).datagrid("options").columns;
                    for (i in columns[0]){
                        if(columns[0][i].field== "FPROJECTNAME_L1")
                            rows[tmpIndex][columns[0][i].field] = rowData.FPROJECTNAME_L1;
                        if(columns[0][i].field== "FPROJECTNAME_L2")
                            rows[tmpIndex][columns[0][i].field] = rowData.FPROJECTNAME_L2;

}

思路:

单元格有两种,一种是编辑控件的,一种是只显示的。

1、编辑控件获取编辑,当做textbox控件setValue即可。

2、只供显示的单元格,根据编辑控件对象,找到父节点的 兄弟节点,然后获取 显示字段的div,填入。

但是问题是,值修改页面元素,datagrid实体对象并没有更新数据,当关闭行,或获取数据时,是没有变的。所以用下面的columns 和rows去更新实体对象值。至于原理我也不太懂,就是起作用,好用。哈哈

 

 

转载于:https://my.oschina.net/u/2416491/blog/1554358

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值