{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); } } } } }当下拉选择后其他列的combobox下拉框的值根据当前选中的值作为查询条件查询并赋下拉框
时间: 2024-03-09 22:45:13 浏览: 80
你可以使用以下代码实现在下拉选择后,其他列的combobox根据当前选中的值作为查询条件查询并赋下拉框:
```
onChange:function(newValue,oldValue){
if(oldValue != newValue){
var index = getRowIndex(this);
reSetColorValue(newValue,index);
$('#manage_btpCommodityDetails_datagrid').datagrid('reloadRow', index);
$('#other_column_combobox').combobox('reload', '/manage/platform/commodity/baseCommodityModelCp/getOtherColumnData?config_name=' + newValue);
}
}
```
其中,`getOtherColumnData`是一个后端接口,用于根据选择的`config_name`查询需要更新的combobox的数据。你需要将该接口的URL替换为实际的接口地址,并且将需要更新的combobox的ID替换为实际的ID。
相关问题
{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方法获取所有行的数据,最后通过索引获取当前行的数据,从而获取其他列的值。