kendogrid刷新后添加CSS元素
Add CSS element after kendogrid refresh
我有一个 ajax 调用发送到 MyController 中的 MyAction.. 它 returns 我有成功的结果和我想附加一些元素的 Id CSS.
Id 被返回,css 被添加,但是 refreshGridData 发生在删除我刚刚添加到元素的 css 之后。
有没有办法等待 refreshGridData 完成,然后添加 css?
我确实尝试了 ajax.. 它没有用。
$.ajax({
url: "@Url.Action("MyAction", "MyController")",
type: "POST",
data: postData,
success: function (result) {
if (result.Success) {
alert("success");
refreshGridData();
}
},
error: function (result) {
alert("Error!");
}
AddMyCSSToThis(result.Id);
// done: AddMyCSSToThis(result.Id);
});
function refreshGridData() {
var ajaxContainer = $(".grid-wrap");
kendo.ui.progress(ajaxContainer, true);
refreshGrid();
kendo.ui.progress(ajaxContainer, false);
}
您可以创建一个全局变量并在网格 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;
}
}
});
为什么不传入要将更改添加到 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);
}
我有一个 ajax 调用发送到 MyController 中的 MyAction.. 它 returns 我有成功的结果和我想附加一些元素的 Id CSS.
Id 被返回,css 被添加,但是 refreshGridData 发生在删除我刚刚添加到元素的 css 之后。
有没有办法等待 refreshGridData 完成,然后添加 css?
我确实尝试了 ajax.. 它没有用。
$.ajax({
url: "@Url.Action("MyAction", "MyController")",
type: "POST",
data: postData,
success: function (result) {
if (result.Success) {
alert("success");
refreshGridData();
}
},
error: function (result) {
alert("Error!");
}
AddMyCSSToThis(result.Id);
// done: AddMyCSSToThis(result.Id);
});
function refreshGridData() {
var ajaxContainer = $(".grid-wrap");
kendo.ui.progress(ajaxContainer, true);
refreshGrid();
kendo.ui.progress(ajaxContainer, false);
}
您可以创建一个全局变量并在网格 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;
}
}
});
为什么不传入要将更改添加到 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);
}