如何在部分View In Kendo UI网格中显示工具提示内容?

时间:2014-06-01 05:37:36

标签: jquery ajax kendo-ui kendo-grid kendo-asp.net-mvc

当鼠标放在网格单元格上时,我使用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");

1 个答案:

答案 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");