$(this).datagrid("beginEdit", index); var url = "/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList?commodityId="+rows[index].commodityId; $.ajax({ url: url, async: false, //同步请求 dataType: "json", success: function(data){ var configTarget= $(this).datagrid("getEditor",{index:index,field:"commodityConfig"}).target; configTarget.combobox('loadData', data); } }); $(this).datagrid("endEdit", index); editor关闭后在打开下拉款无值
时间: 2024-02-25 18:59:44 浏览: 288
根据你提供的代码,我认为问题可能是因为在editor关闭后,下拉框的数据源被清空了。这是因为当editor关闭时,datagrid会自动清空editor所在单元格的内容。因此,你需要在重新打开editor时重新设置下拉框的数据源。
以下是一个可能的解决方案:
```
$(this).datagrid({
onBeforeEdit:function(index,row){
var url = "/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList?commodityId="+row.commodityId;
$.ajax({
url: url,
async: false,
dataType: "json",
success: function(data){
var editor = $(this).datagrid("getEditor",{index:index,field:"commodityConfig"});
$(editor.target).combobox('loadData', data);
}
});
}
});
```
在这个解决方案中,我使用了datagrid的onBeforeEdit事件,并在事件中重新设置了下拉框的数据源。当你重新打开editor时,onBeforeEdit事件会被触发,然后重新获取数据并设置下拉框的数据源。
请注意,在这个解决方案中,我使用了editor.target来获取下拉框的DOM元素。这是因为在事件处理程序函数中,this指向了datagrid对象,而不是editor对象。因此,我们需要使用editor.target来获取下拉框的DOM元素。
阅读全文