添加对话框变量重置的JqGrid BeforeShow事件
在显示add对话框之前,我调用以下函数;在JqGrid上单击[+]之后 MVC控制器网格配置添加对话框变量重置的JqGrid BeforeShow事件,jqgrid,dialog,add,Jqgrid,Dialog,Add,在显示add对话框之前,我调用以下函数;在JqGrid上单击[+]之后 MVC控制器网格配置 ordersGrid.ClientSideEvents.BeforeAddDialogShown = "initAddDialog"; 该函数通过Ajax调用创建一个新订单记录,该记录包含或不包含链接id,具体取决于单击[+]按钮时是否选择了现有订单 其目的是提供进行另一个Ajax调用所需的id,以从另一个服务检索其他链接信息,并使用日期/时间信息和(如果适用)现有记录中的公共信息预填充新记录 fun
ordersGrid.ClientSideEvents.BeforeAddDialogShown = "initAddDialog";
该函数通过Ajax调用创建一个新订单记录,该记录包含或不包含链接id,具体取决于单击[+]按钮时是否选择了现有订单
其目的是提供进行另一个Ajax调用所需的id,以从另一个服务检索其他链接信息,并使用日期/时间信息和(如果适用)现有记录中的公共信息预填充新记录
function initAddDialog() {
var newOrderId = 0;
var newOrderLinkId = 0;
var selRow = jQuery('#clientOrderGrid').jqGrid('getGridParam', 'selrow');
var selRowData = jQuery('#clientOrderGrid').jqGrid('getRowData', selRow);
从所选行获取链接ID(如果有)
Ajax调用创建新的“保留”订单
$.ajax({
url: '/Order/ajaxNewOrder?OrderLinkId=' + curOrderLinkId,
success: function (newOrderResponse) {
arr = newOrderResponse.split("|");
newOrderId = arr[0];
newOrderLinkId = arr[1];
},
error: function () { alert("There was an error creating an Order record"); }
});
如果我在Firefox中使用Firebug在这里中断代码,我可以看到变量newOrderId和newOrderLinkId已使用新创建的记录中的id正确设置,如果我按F8键,则(已显示)对话框将填充这些//值
如果我没有中断代码,则会显示对话框,但会显示初始化变量时使用的值,即newOrderId=0、newOrderLinkId=0
$('#' + 'OrderId').val(newOrderId);
$('#' + 'OrderLinkId').val(newOrderLinkId);
$('#' + 'Stock').val(stock);
$('#' + 'SettlesTs').val(settlesTs);
$('#' + 'ReceivedTs').val(dtThis);
$('#' + 'ReceivedHHmm').val(dtTime);
我尝试在显示add对话框后调用相同的函数,但得到了相同的结果
有没有想过为什么会这样,或者有没有更好的方法来达到同样的效果
谢谢我已将本机添加/编辑对话框从等式中删除,并使用我自己的“添加”表单以及JqGrid的本机内联编辑。我相信,通过更多的研究,可能会找到一个解决方案,但随着最后期限的临近,我不得不找到一个解决办法
$('#' + 'OrderId').val(newOrderId);
$('#' + 'OrderLinkId').val(newOrderLinkId);
$('#' + 'Stock').val(stock);
$('#' + 'SettlesTs').val(settlesTs);
$('#' + 'ReceivedTs').val(dtThis);
$('#' + 'ReceivedHHmm').val(dtTime);