easyui-datagrid行编辑,后台以主表为基表关联从表进行查询数据后,在前台行编辑字段内容的显示

一、前提条件:

1.行编辑的columns字段既有主表字段,又有从表字段。行编辑内容的展示应该以从表('多记录')为基表,关联主表('单记录')进行后台查询。否则行编辑中'被关联的表'的字段的显示处理起来很麻烦。

2.行编辑代码格式如下:

 

二、行编辑主表的字段用formatter函数处理,如下图(其中workLogTable是主表):

三、行编辑主表字段的应用(作为参数):

 

 

 

### 解决EasyUI DataGrid行内编辑时ComboBox数据无法回显的问题 当遇到EasyUI DataGrid中的组合框(ComboBox)在行编辑模式下无法正确显示已选值的情况时,可以采取以下方法来解决问题。 对于DataGrid组件,在获取编辑器对象之后,应当确保所使用的`combobox`插件被正确初始化并加载了必要的选项列。如果这些选项是在页面初次渲染后动态添加到DOM结构中的,则可能需要手动触发一次刷新操作以使新加入的内容生效[^2]。 另外一种常见的情形是由于定事件顺序不当造成的——即试图读取或设置控件状态之前该控件尚未完成其自身的初始化过程。针对这种情况,可以在确认目标元素确实已经就绪后再执行相应的逻辑处理;或者通过监听特定时刻发生的回调函数来进行后续动作[^1]。 下面是一个具体的实现方案: ```javascript // 假设当前正在遍历某一行记录,并尝试为其指定默认值 var editor = $('#aimtab').datagrid('getEditor', { index: i, field: 'khmx_df' }); if (editor) { var combo = $(editor.target).combobox({ valueField: 'id', textField: 'text' }); // 设置初始值前先清空现有项 combo.combobox('clear'); // 加载远程数据源或其他方式填充combo box $.getJSON('/api/getOptions', function(data){ combo.combobox('loadData', data); // 确认数据加载完毕再设定value属性 setTimeout(function(){ combo.combobox('setValue', someValue); }, 0); // 使用setTimeout延迟执行可有效避免同步问题 }); } ``` 上述代码片段展示了如何安全地更新ComboBox内的项目以及应用预定义的选择。这里的关键在于利用异步请求完成后才去更改控件的状态,从而保证了界面能够及时反映出最新的变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值