【问题标题】:JqGrid BeforeShow event of add dialog variables reset添加对话框变量重置的 JqGrid BeforeShow 事件
【发布时间】:2012-10-30 18:10:22
【问题描述】:

在显示添加对话框之前,我调用了以下函数;单击 JqGrid 上的 [+] 后。

MVC 控制器网格配置

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(如果有)

var curOrderLinkId = (selRowData.OrderLinkId == null) ? 0 : selRowData.OrderLinkId;

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);

我尝试在显示添加对话框后调用相同的函数,但得到相同的结果。

关于为什么会这样,或者有没有更好的方法来达到同样的结果?

谢谢

【问题讨论】:

    标签: jqgrid dialog add


    【解决方案1】:

    我已将本机添加/编辑对话框排除在外,并使用我自己的“添加”表单以及 JqGrid 的本机内联编辑。我敢肯定,通过更多研究,可能会找到解决方案,但随着最后期限的临近,我必须找到解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      相关资源
      最近更新 更多