如何在kendo网格列模板中调用模态窗口?

时间:2017-01-25 09:59:26

标签: javascript angular typescript kendo-ui kendo-grid

目前,当您点击Kendo Grid中的链接时,我正在显示模态窗口。以下是我的代码:

{
    field:"filename",
    title: "File Name",
    width: 60,
    template: '<a href='javascript:(function() {$("win").kendoWindow();})();'><span id="win">#:filename#</span></a>'
},

现在发生的是,作为json的文件只显示为其文件名,但我需要显示的是文件内的内容。有什么办法可以做到这一点吗?非常感谢任何帮助。

我已尝试<a target="_blank"></a>在新标签页中打开,但我需要在新的模式窗口中打开它。

1 个答案:

答案 0 :(得分:0)

您的模板无效。您无法将纯JavaScript代码添加到字符串中。它不是它的工作方式。您可能在控制台中遇到错误。此外,您的代码中还有其他一些缺陷:

  • 您不应在dom中添加多个具有相同ID的元素,就像您使用<span id='win'></span>一样。改为改为上课。

  • 如果您在该范围内打开一个窗口,它将会破坏该列的内容。 Check this

我建议的是这段代码:

模板:

template: '<a href="javascript:void(0)" class="open-modal">#:filename#</a>'

点击活动:

$("#grid").on("click", "a.open-modal", function() {
    $("<div></div>").appendTo($("#win")).kendoWindow();
});

#win是您身体中的div元素。

Demo

在点击事件中 - 附加到网格并通过链接的课程.open-modal进行过滤 - 它只会创建一个新的div,并将其附加到div#win并且然后打电话给kendoWindow

<强>更新

  • 要在展示时让窗口居中,只需使用center()方法;

  • 要获取所点击行的数据,请从点击的链接中获取tr,然后使用网格中的dataItem()方法。

Demo