我有一个ajax调用,它发送到MyController中的MyAction ..它返回我的成功结果和我要附加一些CSS的元素的Id。
返回了Id,并添加了css,但是刷新了后续删除我刚刚添加到元素中的css的refreshGridData。
有没有办法等待refreshGridData完成然后添加css?
我确实尝试过ajax ...它没有用。
@Email.com
答案 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;
}
}
});