用jQuery函数刷新Telerik MVC网格

4

嗨,我有两个MVC Telerik网格在一个视图中显示。

每个网格都有一个自定义列和编辑链接

当用户点击编辑链接时,将弹出一个对话框模型,其中包含一个表单,用户点击保存按钮后,下面的脚本将运行

 function OpenStopForm() {

    $("#dialog:ui-dialog").dialog("destroy");
    $("#dialog-model").dialog({
        height: 220,
        width: 340,
        modal: true,
        buttons: {
            "Save": function () {
                var note = $('textarea[name=StopNote]').val();
                $.ajax({
                    type: "POST",
                    url: "/Medication/StopMedication",
                    data: { ID: pid, StopNote: note },
                    dataType: "json",
                    success: refreshGrid()
                });
                $(this).dialog("close");
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        }
    });

}

在上述函数成功运行后,我希望通过某种Ajax调用使两个Telerik网格刷新。
我想调用以下函数:
success: refreshGrid

function refreshGrid() {
     $('#CurrentMedication').data('t-grid').ajaxRequest();
}

但是refreshGrid函数在我的Controller动作执行之前被调用。
我希望这个函数在我的controller操作完成后被调用。

我不确定我的语法是否正确!

我尝试从这里做些什么

有人可以帮助我如何在Ajax Post成功后调用refreshgrid函数吗? 并请纠正我的刷新网格函数。

2个回答

10

我已经修改了我的ajax调用如下:

  $.ajax({
                type: "POST",
                url: "/Medication/StopMedication",
                data: { ID: pid, StopNote: note },
                dataType: "text",
                success: function (data) {
                refreshGrid();
                }
          })

我的刷新网格代码是这样的

function refreshGrid() {
$(".t-grid .t-refresh").trigger('click');
}

Telerik网格具有在顶部和底部放置刷新按钮的选项。如果两个都启用,则每个网格将获得两个刷新调用。我只有一个网格,但需要此功能,并通过使用找到的第一个对象来解决了这个问题:$(“.t-grid .t-refresh”).first().trigger('click'); 这样,网格将刷新一次而不是两次。但是,如果您有两个网格(如OP所示),则必须进一步限定选择器。尽管如此,这个答案对于让我的页面运行起来非常关键。谢谢! - Robb Sadler

0
如果有人在寻找这个,那么刷新应该像这样被调用。
$(".k-grid .k-pager-refresh").trigger('click');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接