Jquery 如何自定义工具提示,例如在网格中包含一些按钮';剑道UI MVC中的s单元格工具提示?

Jquery 如何自定义工具提示,例如在网格中包含一些按钮';剑道UI MVC中的s单元格工具提示?,jquery,kendo-ui,kendo-grid,kendo-asp.net-mvc,kendo-tooltip,Jquery,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,Kendo Tooltip,在单元格的工具提示中,我想添加一些按钮或菜单,例如“打开”按钮。当我将鼠标悬停在单元格上方时,工具提示将显示该按钮。当我单击该按钮时,它将打开一个窗口。剑道网格能做到这一点吗?以下是使用JS的方法;您需要做的就是使用适当的MVC包装器(Html.Kendo().Grid(),@(Html.Kendo().Tooltip()和Html.Kendo().Window())(但如果要使用jQuery单击事件,可能需要对窗口使用纯JS): 网格: var grid=$(“#grid”).kendoGri

在单元格的工具提示中,我想添加一些按钮或菜单,例如“打开”按钮。当我将鼠标悬停在单元格上方时,工具提示将显示该按钮。当我单击该按钮时,它将打开一个窗口。剑道网格能做到这一点吗?

以下是使用JS的方法;您需要做的就是使用适当的MVC包装器(
Html.Kendo().Grid()
@(Html.Kendo().Tooltip()
Html.Kendo().Window()
)(但如果要使用jQuery单击事件,可能需要对窗口使用纯JS):

网格:

var grid=$(“#grid”).kendoGrid({
数据源:数据源,
栏目:[{
字段:“Id”,
标题:“身份证”,
可过滤:false
}, {
字段:“状态文本”,
标题:“字符串值”
}, {
字段:“工具提示”,
标题:“工具提示栏”,
模板:“#=data.ToolTip”
}]
}).数据(“kendoGrid”);
工具提示:

var currentDataItem;
var toolTip = $('#grid').kendoTooltip({
    filter: ".tooltip",
    content: function (e) {
        var row = $(e.target).closest("tr");
        currentDataItem = grid.dataItem(row);
        return "<div>Hi, this is a tool tip for id " + currentDataItem.Id + "! <br/> <button class='open'>Open window</button></div>";
    }
}).data("kendoTooltip");
var-currentDataItem;
变量工具提示=$(“#网格”).kendoTooltip({
过滤器:“.tooltip”,
内容:职能(e){
var行=$(e.target).最近的(“tr”);
currentDataItem=grid.dataItem(行);
return“嗨,这是id”+currentDataItem.id+“!
打开窗口”的工具提示; } }).数据(“kendoTooltip”);
窗口:

$(document).on("click", ".open", function () {
    var currentContent = currentDataItem.get("StatusText");
    $("<div>Current status: " + currentContent + "</div>").kendoWindow({
        modal: true
    }).getKendoWindow().center().open();
});
$(文档)。在(“单击”,“打开”,函数(){
var currentContent=currentDataItem.get(“StatusText”);
$(“当前状态:+currentContent+”).kendoWindow({
莫代尔:对
}).getKendoWindow().center().open();
});

()

当我单击“打开”按钮时,我可以在窗口中显示行信息吗?窗口在网格的同一行中显示“字符串值”(如“某些文本”)?当然可以;如您所见,我们已经在工具提示的内容方法中访问当前行的模型;您需要做的就是将该模型存储在一个变量中,该变量可由设置窗口的函数访问(在演示中,这必须是全局的);我编辑了答案以反映这一点
$(document).on("click", ".open", function () {
    var currentContent = currentDataItem.get("StatusText");
    $("<div>Current status: " + currentContent + "</div>").kendoWindow({
        modal: true
    }).getKendoWindow().center().open();
});