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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?