我正在使用KendoUI工具提示助手。目前,我正在执行以下操作以获取网格行上的一些工具提示信息:
$("#grid").kendoTooltip({
filter: 'td:nth-child(10)',
content: function (e) {
var template = kendo.template($("#myToolTipTemplate").html());
var dataItem = $("#grid").data("kendoGrid").dataItem(e.target.closest("tr"));
var tooltipHtml;
$.ajax({
url: DetailsURL + "/" + dataItem.Id,
async: false
}).done(function (data) { // data.Result is a JSON object from the server with details for the row
if (data.Success) {
data.Result = data.Result.replace(/null/g, "\"N/A\"");
tooltipHtml = template($.parseJSON(data.Result));
} else {
tooltipHtml = "Ooops!<br>Something went wrong (" + data.Result + ")";
}
});
return tooltipHtml;
}
});
我想摆脱同步ajax调用并使其异步。我看到了一些异步示例,其中服务器提供完整的html,但没有任何与服务器的JSON数据一起工作,然后通过kendo.template()“编译”到客户端上的html。有什么建议怎么做?
答案 0 :(得分:0)
$(&#34;#ID&#34)的数据。(&#34; kendoTooltip&#34)popup.wrapper.find。(&#34; .K-工具提示内容&#34)。HTML (&#34; ........&#34);
答案 1 :(得分:0)
Telerik在这里帮助了我。并且,通常,它比猜测更容易..
$("#grid").kendoTooltip({
filter: 'td:nth-child(10)',
content: function (e) {
var template = kendo.template($("#myToolTipTemplate").html());
var dataItem = $("#grid").data("kendoGrid").dataItem(e.target.closest("tr"));
var tooltipHtml;
$.ajax({
url: DetailsURL + "/" + dataItem.Id,
async: false
}).done(function (data) { // data.Result is a JSON object from the server with details for the row
if (data.Success) {
data.Result = data.Result.replace(/null/g, "\"N/A\"");
tooltipHtml = template($.parseJSON(data.Result));
} else {
tooltipHtml = "Ooops!<br>Something went wrong (" + data.Result + ")";
}
// set tooltip content here (done callback of the ajax req)
e.sender.content.html(tooltipHtml);
});
}
});