easyui不打开单元格编辑的情况下,更新单元格内容

今天有个需求:easyui的DataGrid有4列,第一列为id 隐藏列,其他列为数据列,需求是点击某一行开启行编辑后,编辑行第二列的下拉框选择后,更新第一列的id。

行编辑和单元格内下拉框没有问题,问题在于如何更新id列:由于id列没有开启编辑,拿editor是拿不到的,所以无法更新

 

解决:需要同时更新页面和数据的值,实例代码如下

复制代码
 1 var tmpIndex = editIndexs[rewriteTableId];
 2 //获取 主要的按钮对象  单元格
 3 var ed = $(rewriteTableId).datagrid('getEditor', {index:tmpIndex,field:"FPROJECTNUMBER"});
 4 $(ed.target).textbox('setValue', rowData.FPROJECTNUMBER);
 5 // 有editor的更新方法------------------------------------------------
 6 $($(rewriteTableId).datagrid('getEditor', {index:tmpIndex,field:"FCREATEPROJECTID"}).target).textbox('setValue', rowData.FID);
 7 // 没有editor 的列,更新方法       --------选择按钮的列名---------------------------------要反写的字段列明------------------------弹窗  选择的 数据。
 8 $(ed.target).parents("td[field='FPROJECTNUMBER']").siblings("td[field='FPROJECTNAME_L1']").find("div").html(rowData.FPROJECTNAME_L1);
 9 $(ed.target).parents("td[field='FPROJECTNUMBER']").siblings("td[field='FPROJECTNAME_L2']").find("div").html(rowData.FPROJECTNAME_L2);
10 
11 //更新页面div值并不会 更新datagrid 实体值,所以调用方法更新
12 var rows = $(rewriteTableId).datagrid("getRows");
13 var columns = $(rewriteTableId).datagrid("options").columns;
14 for (i in columns[0]){
15     if(columns[0][i].field== "FPROJECTNAME_L1")
16         rows[tmpIndex][columns[0][i].field] = rowData.FPROJECTNAME_L1;
17     if(columns[0][i].field== "FPROJECTNAME_L2")
18         rows[tmpIndex][columns[0][i].field] = rowData.FPROJECTNAME_L2;
复制代码

 

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

posted @   Reix  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示