{field: 'commodityConfig', width:250,title:"配置", editor:{ type:'combobox', options:{ valueField:'config_name', textField:'config_name', onBeforeLoad: function(param) { /**获取当前选中行的index * 当前选中行:$(this).closest('tr.datagrid-row') * 获取选中行的index:.attr('datagrid-row-index'); * @type {*|jQuery} */ var rowIndex = $(this).closest('tr.datagrid-row').attr('datagrid-row-index'); var rows = $('#manage_btpCommodityDetails_datagrid').datagrid('getRows'); var commodityId = rows[rowIndex].commodityId; //获取当前行commodityId列的值 param.commodityId = commodityId; //将commodityId作为参数传递到url中 }, url:'/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList', onChange:function(newValue,oldValue){ if(oldValue != newValue){ var index = getRowIndex(this); reSetColorValue(newValue,index); } } } } },当值发生改变时如何reload其他列的combobox
时间: 2024-03-09 15:45:09 浏览: 21
你可以使用以下代码实现在combobox值改变时重新加载其他列的combobox:
```
onChange:function(newValue,oldValue){
if(oldValue != newValue){
var index = getRowIndex(this);
reSetColorValue(newValue,index);
$('#manage_btpCommodityDetails_datagrid').datagrid('reloadRow', index);
}
}
```
其中,`reloadRow`方法会重新加载指定行的数据,并且更新相应的单元格。你可以在该方法中传入需要重新加载的行的索引,即上面获取到的`index`。
相关问题
{field: 'commodityConfig', width:250,title:"配置", editor:{ type:'combobox', options:{ valueField:'config_name', textField:'config_name', url: } } }, url怎么获取到其他列的值
你可以使用 easyui 的 datagrid 的 getEditor 方法来获取编辑器对象,然后再通过该编辑器对象获取其他列的值。具体的实现步骤如下:
1. 在 url 属性中设置一个可以获取到其他列值的接口地址;
2. 在 editor 的 options 中设置 onChange 事件,当配置选项发生变化时触发该事件;
3. 在 onChange 事件中使用 getEditor 方法获取到当前编辑器对象,然后通过该编辑器对象的 getRow 方法获取到当前行的数据对象;
4. 然后在该数据对象中获取到其他列的值,拼接到 url 中,最终获取到需要的数据。
下面是一个示例代码:
```
{field: 'commodityConfig', width:250,title:"配置",
editor: {
type:'combobox',
options: {
valueField: 'config_name',
textField: 'config_name',
url: 'getOtherColumnValue.php?columnValue=' + $('#dg').datagrid('getEditor', {index:editIndex,field:'otherColumn'}).target.val(),
onChange: function(newValue, oldValue) {
var editor = $(this).combobox('options').editor;
var row = editor.getRow(editor.target.closest('tr'));
var otherColumnValue = row.otherColumn;
$(this).combobox('reload', 'getOtherColumnValue.php?columnValue=' + otherColumnValue);
}
}
}
}
```
在上面的代码中,我们通过 getEditor 方法获取到了当前编辑器对象,然后通过该编辑器对象的 getRow 方法获取到当前行的数据对象,最终获取到了其他列的值,将其拼接成一个完整的 url,然后使用 combobox 的 reload 方法重新加载数据。
{ field: 'commodityConfig', width: 250, title: '配置', editor: { type: 'combobox', options: { valueField: 'config_name', textField: 'config_name', url: } } },如何获取当前行其他列的值
您可以使用easyui中的datagrid的API来获取当前行的其他列的值。首先,使用datagrid的getRowIndex方法获取当前行的索引,然后使用datagrid的getRows方法获取所有行的数据,接着就可以通过索引获取当前行的数据,从而获取其他列的值。以下是示例代码:
```
editor: {
type: 'combobox',
options: {
valueField: 'config_name',
textField: 'config_name',
url: 'yourUrl',
onLoadSuccess: function(data) {
var rowIndex = $(this).closest('tr.datagrid-row').attr('datagrid-row-index');
var rows = $(this).datagrid('getRows');
var commodityName = rows[rowIndex].commodityName; //获取当前行commodityName列的值
var commodityPrice = rows[rowIndex].commodityPrice; //获取当前行commodityPrice列的值
//在这里可以使用获取到的值进行其他操作
}
}
}
```
以上代码中,onLoadSuccess是combobox加载数据完成时的回调函数,其中$(this)表示当前combobox的DOM对象,使用closest方法获取当前行的DOM对象,再使用attr方法获取当前行的索引,然后使用datagrid的getRows方法获取所有行的数据,最后通过索引获取当前行的数据,从而获取其他列的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)