当鼠标放在网格单元格上时,我使用ajax请求从部分视图中显示工具提示内容,但有时我发现工具提示内容没有显示任何内容,有时候还可以。我尝试在同步中创建ajax请求,但它仍然无法正常工作。如何解决这个问题?我只是想在部分视图返回时显示内容。
在ajax async属性中:我尝试了true或false
$("#Grid").kendoTooltip({
filter: ".tooltipContent",
width: "auto",
position: "top",
showOn: "click",
autoHide: false,
content: function (e) {
var row = $(e.target).closest("tr");
var dataItem = $('#Grid').data('kendoGrid').dataItem(row);
Id = dataItem.Id
$('#TooltipContentDiv').html("");
$.ajax({
url: "@Url.Action("GetPV","Home")",
data: { "Id": Id },
cache: false,
async: true,
success: function (result) {
$('#TooltipContentDiv').html(result);
},
error: function () { }
});
return $('#TooltipContentDiv').html();
}
}).data("kendoTooltip");
答案 0 :(得分:1)
尝试在Ajax调用的Success事件中移动返回,以便它仅在成功事件之后返回(否则将为空)。由于JavaScript是异步的,因此它不会等待Ajax调用完成,并且可以在Success事件加载数据之前触发 return 。这可能是你看到随机结果的方式。
$("#Grid").kendoTooltip({
filter: ".tooltipContent",
width: "auto",
position: "top",
showOn: "click",
autoHide: false,
content: function (e) {
var row = $(e.target).closest("tr");
var dataItem = $('#Grid').data('kendoGrid').dataItem(row);
Id = dataItem.Id
$('#TooltipContentDiv').html("");
$.ajax({
url: "@Url.Action("GetPV","Home")",
data: { "Id": Id },
cache: false,
async: true,
success: function (result) {
$('#TooltipContentDiv').html(result);
},
error: function () { }
});
}
}).data("kendoTooltip");