var rows = $('#manage_btpCommodityDetails_datagrid').datagrid('getRows'); for(index in rows){ rows[index].currency = crrrency $('#manage_btpCommodityDetails_datagrid').datagrid('refreshRow',index); }刷新行
时间: 2024-04-22 21:28:52 浏览: 138
这段代码是用来刷新Datagrid中的行的。具体来说,它首先使用`datagrid('getRows')`方法获取Datagrid中的所有行,然后遍历每一行并设置它们的`currency`属性为`crrrency`。最后,使用`datagrid('refreshRow',index)`方法刷新每一行。
`datagrid('refreshRow',index)`方法用于刷新Datagrid中指定行的内容。其中,`index`参数表示要刷新的行的索引,从0开始计数。在这里,我们通过遍历每一行并传递它的索引来刷新所有的行。
需要注意的是,这段代码使用了jQuery库中的`$()`函数来获取Datagrid元素,并调用了它的`datagrid()`方法来操作Datagrid。因此,在使用这段代码之前,需要先引入jQuery库和Datagrid插件。同时,代码中的`crrrency`应该是一个变量,用来存储新的货币名称。
相关问题
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动态赋值
如果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`组件。
onChange:function (newValue,oldValue) { debugger; var rows = $('#manage_btpCommodityDetails_datagrid').datagrid('getRows'); var index = getRowIndex(this); rows[index].salesQuantity = newValue; rows[index].saleAmount = Number(rows[index].salePrice)*Number(newValue); change事件后 }change事件后saleAmount 列数据没有发生改变
在你的代码中,你只是更新了 `rows[index].salesQuantity` 的值,但没有更新 `rows[index].saleAmount` 的值。因此,即使你在 `salesQuantity` 列中更改了一个值,`saleAmount` 列也不会自动更新。
你可以在 `onChange` 事件中,同时更新 `salesQuantity` 和 `saleAmount` 列的值,如下所示:
```javascript
onChange: function(newValue, oldValue) {
var rows = $('#manage_btpCommodityDetails_datagrid').datagrid('getRows');
var index = getRowIndex(this);
rows[index].salesQuantity = newValue;
rows[index].saleAmount = Number(rows[index].salePrice) * Number(newValue);
// 手动更新 saleAmount 列的值
$('#manage_btpCommodityDetails_datagrid').datagrid('updateRow', {
index: index,
row: rows[index]
});
}
```
通过调用 `datagrid` 的 `updateRow` 方法,可以手动更新行数据,从而更新 `saleAmount` 列的值。这样,当你更改 `salesQuantity` 列中的值时,`saleAmount` 列就会自动更新。
阅读全文