我正在使用jQuery获取零件编号的供应商列表。 然后,我想在编辑窗体出现后加载一些关于供应商/零件编号组合的额外数据。问题是dataurl方法(我在beforeInitData方法中调用)来获取供应商在执行beforeShowForm方法之前未完成。因此,当表单第一次加载时,我没有供应商查询。有没有办法在dataUrl方法完成后运行该函数来获取额外的数据?jqgrid dataurl完成事件
我试过JQGrid editoptions dataurl not using ajax get?,但我知道会有冲突,因为ajaxSelectOptions方法会被每个请求调用,有时候我的请求会来自不同的需求不同的地方。
这里是我使用我的网格代码:
jQuery("#receiptPartsTable").jqGrid('editGridRow',"new",
{
height:400,
width:800,
reloadAfterSubmit:false,
recreateForm: true,
beforeInitData: function(form)
{
var selectedPart = rowData.part;
var selectedPartQty = rowData.qty;
//Getting list of suppliers
$("#receiptPartsTable").jqGrid('setColProp', 'supplier', { editoptions:{dataUrl:'getSuppliersForPart.php?part=' + rowData.part} });
},
beforeShowForm: function(form)
{
var selectedPart = rowData.part;
var selectedPartQty = rowData.qty;
$('#part').val(selectedPart);
$('#qty').val(selectedPartQty);
//$('#supplier').val() is not set yet;
var supplier = $('#supplier').val();
//This method is getting called before there is a supplier
getPartDetails(rowData.part, supplier);
//Set up onChange listener. After selecting a supplier, get the part details
$('#supplier').change(function() {
var supplier = $('#supplier').val();
getPartDetails(selectedPart, supplier);
});
}
感谢您的详细解答。我没有意识到我可以使用“这个”。 – Asagohan
@Asagohan:不客气! – Oleg