onChange:function(newValue,oldValue){ var colorConfig = $(this).combobox('getData'); var rows = $('#manage_btpCommodityDetails_datagrid').datagrid('getRows'); if(colorConfig.length>0){ debugger; var reallyColor = colorConfig.filter(color=> color.data_name = newValue); var index = getRowIndex(this); rows[index].colorName = newValue; rows[index].colorCode = reallyColor[0].date_code; rows[index].skuCode = reallyColor[0].skuCode; rows[index].brand = reallyColor[0].brandName; rows[index].vehicleType = reallyColor[0].modelName; rows[index].customVehicleType = reallyColor[0].customModelName; rows[index].productDescription = reallyColor[0].commodityDescription; } }没有editor的brand动态赋值
时间: 2024-02-10 14:11:54 浏览: 116
如果EasyUI的DataGrid组件中某一列没有设置`editor`属性,并且需要对该列进行动态赋值,可以通过在该列的`formatter`属性中使用EasyUI的`textbox`组件来实现。
具体来说,可以在`formatter`属性中使用`textbox`组件的`setValue`方法为该列的单元格设置文本值,然后在`onChange`事件中可以通过`getRowIndex`方法获取当前单元格所在行的索引,进而更新其他列的值。示例代码如下:
```javascript
$('#datagrid').datagrid({
// ... 其他配置项
columns: [[
{field:'name', title:'姓名'},
{field:'age', title:'年龄'},
// 没有设置editor的列
{field:'brand', title:'品牌', formatter: function(value, row, index) {
// 使用textbox组件来模拟编辑器的效果
return '<input class="easyui-textbox" value="' + value + '" data-options="onChange: function(newValue,oldValue){ var colorConfig = $(\'#color_combobox\').combobox(\'getData\'); var rows = $(\'#datagrid\').datagrid(\'getRows\'); if(colorConfig.length>0){ var reallyColor = colorConfig.filter(color=> color.data_name = newValue); var rowIndex = $(this).closest(\'tr.datagrid-row\').attr(\'datagrid-row-index\'); rows[rowIndex].brand = reallyColor[0].brandName; rows[rowIndex].vehicleType = reallyColor[0].modelName; rows[rowIndex].customVehicleType = reallyColor[0].customModelName; rows[rowIndex].productDescription = reallyColor[0].commodityDescription; } }" />';
}},
// ... 其他列
]],
// ... 其他配置项
});
// 在页面加载完成后,初始化textbox组件
$('.easyui-textbox').textbox();
```
在上述示例代码中,我们在DataGrid的`columns`属性中定义了三列,其中第三列没有设置`editor`属性,而是在`formatter`属性中使用EasyUI的`textbox`组件来模拟编辑器的效果。在`onChange`事件中,我们首先使用`combobox`组件的`getData`方法获取到颜色的配置信息,然后通过`getRowIndex`方法获取当前单元格所在行的索引,进而更新其他列的值。
需要注意的是,在使用`textbox`组件模拟编辑器的效果时,需要在页面加载完成后,使用`$('.easyui-textbox').textbox()`方法来初始化所有的`textbox`组件。
阅读全文