我正在使用 jQuery 获取零件编号的供应商列表。然后,一旦出现编辑表单,我想加载一些关于供应商/零件号组合的额外数据。问题是获取供应商的 dataurl 方法(我在 beforeInitData 方法中调用)在 beforeShowForm 方法执行之前没有完成。因此,当表单首次加载时,我没有要查找的供应商。有没有办法在 dataUrl 方法完成后运行该函数以获取额外的数据?
我试过JQGrid editoptions dataurl 不使用 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);
});
}