最近公司接的是ZF项目,换了easyUI,开发时有这样的一个效果,要求表格可编辑,某些列是下拉框显示。参考easyUI API显示效果很好实现。但是编辑完成后,调用
$('#dg').datagrid('endEdit', editIndex)后,单元格中的值会显示为value值,不是text值,假如 [{value:1,text:'定量'},{value:2,text:'定性'}],也就是说,选择‘定量’,调用endEdit后会显示‘1’而不是‘定量’。这是因为easyui为了向后台传值方便而导致的。
这种情况下我是想着做转换来解决的,代码如下:
//获取字段编辑器
var ed = $('#dg').datagrid('getEditor', { index: editIndex, field: field });
//得到显示text值
var showText= $(ed.target).combobox('getText');
//结束编辑
$('#exampleTable').datagrid('endEdit', editIndex);
//结束编辑之后将字段值重新赋值然后更新行数据
$('#dg').datagrid('getRows')[editIndex][field] = showText;
$('#dg').datagrid('updateRow', { index: editIndex, row: { name: field } });
显示效果如下: