easyui datagrid 手动记录处理编辑行信息

$("#dgList").datagrid({
                    onClickRow: function (index, row) { 
                        var dg = $(this);
                        var editRowIndex = dg.data("editRowIndex");
                        if (editRowIndex != index && editRowIndex != undefined) {
                            dg.datagrid("endEdit", editRowIndex);
                        }
                        dg.datagrid('beginEdit', index);
                    },
                    onBeginEdit: function (index, row) {
                        $("#dgList").data("editRowIndex", index);
                        //可用 .data("otherkey", index); 随意记录其他信息
                    },
                    onEndEdit: function (index, row, changes) {
                        $("#dgList").data("editRowIndex", undefined);
                    }
                });

### 解决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、付费专栏及课程。

余额充值