在kendogrid刷新后添加CSS元素

时间:2018-04-10 17:12:11

标签: javascript ajax kendo-grid asp.net-ajax kendo-asp.net-mvc

我有一个ajax调用,它发送到MyController中的MyAction ..它返回我的成功结果和我要附加一些CSS的元素的Id。

返回了Id,并添加了css,但是刷新了后续删除我刚刚添加到元素中的css的refreshGridData。

有没有办法等待refreshGridData完成然后添加css?

我确实尝试过ajax ...它没有用。

@Email.com

2 个答案:

答案 0 :(得分:1)

为什么不传递您想要将更改添加到refreshGridData()函数中的ID,如:

 $.ajax({
    url: "@Url.Action("MyAction", "MyController")",
    type: "POST",
    data: postData,
    success: function (result) {
        if (result.Success) {
            alert("success");
            var savedId = result.Id;
            refreshGridData(savedId);
        }
    },
    error: function (result) {
        alert("Error!");
    }
    AddMyCSSToThis(result.Id);
   // done: AddMyCSSToThis(result.Id);
}); 

function refreshGridData(savedId) {
    var ajaxContainer = $(".grid-wrap");
    kendo.ui.progress(ajaxContainer, true);
    refreshGrid(savedId); // I'm assuming this function is what adds the css
    kendo.ui.progress(ajaxContainer, false);
}

答案 1 :(得分:0)

您可以创建一个全局变量,并在网格dataBound事件中使用它来添加CSS。

_addCssToResultId = null;
$.ajax({
    url: "@Url.Action("MyAction", "MyController")",
    type: "POST",
    data: postData,
    success: function (result) {
        if (result.Success) {
            alert("success");
            _addCssToResultId = result.Id;
            refreshGridData();
        }
    },
    error: function (result) {
        alert("Error!");
    }
});

// add a dataBound handler to your grid
$("#grid").kendoGrid({
  dataBound: function(e) {
    if(_addCssToResultId) {
       AddMyCSSToThis(_addCssToResultId);
       _addCssToResultId = null;
    }
  }
});