formatter:function(value,row){ debugger; return value; }, editor:{ type:'combobox', options:{ valueField: 'shipCompanyCode', textField: 'shipCompanyName', url: '/manage/platform/baseShipCompany/getBaseShipCompany.html', }, }关闭编辑后显示text的值
时间: 2024-03-05 21:49:19 浏览: 109
在 EasyUI Datagrid 中,如果你想在编辑后显示 Combobox 的 text 值而不是 value 值,可以在 onAfterEdit 事件中手动将 value 转换为 text。具体来说,可以在事件处理函数中使用 Combobox 的 getText 方法获取 text 值,然后将 text 值设置到对应的单元格中。例如:
```
$('#datagrid').datagrid({
onAfterEdit: function (index, row, changes) {
var fieldName = 'shipCompanyCode'; // 编辑的列名称
var value = row[fieldName]; // 获取编辑后的 value 值
var text = $('#datagrid').datagrid('getEditor', {index: index, field: fieldName}).getText(value); // 获取 text 值
$('#datagrid').datagrid('getRows')[index][fieldName + '_text'] = text; // 将 text 值设置到对应的单元格中
$('#datagrid').datagrid('refreshRow', index); // 刷新对应的行
}
});
```
在这个例子中,我们先获取编辑后的 value 值,然后使用 getEditor 方法获取 Combobox 编辑器,并使用 getText 方法获取 text 值。最后,将 text 值设置到对应的单元格中,并使用 refreshRow 方法刷新对应的行。注意,为了将 text 值设置到对应的单元格中,我们需要在列名后面加上 '_text' 后缀,否则会与原来的列名冲突。
需要注意的是,使用这种方法可能会导致数据冗余,因为 text 值已经包含在了 value 值对应的数据中。如果你不希望在数据中包含冗余的 text 值,可以在显示数据时手动将 value 值转换为 text 值,而不是在编辑后将 text 值保存到数据中。