在 kendo ui razor 中使用客户端模板打开弹出窗口 window

Open popup window with client template in kendo ui razor

我正在使用 kendo 网格来显示数据,我想在用户单击具有字符串的列之一时打开弹出窗口 window。我的代码是

columns.Bound(c => c.ResumeFileUrl).EditorViewData(new { PartNo = "#: PartNo #" }).EditorTemplateName("ResumeFileUrlEditor").ClientTemplate("<a href='"  + "/#=Id#'>View Details</a>");

我的 jquery 是:

$("#mId").click(function () {
    $("#Proposal").data("kendoWindow").open();
});

我的 Kendo window 是:

@(Html.Kendo().Window()
    .Name("Proposal")
    .Title("Proposal")
    .Iframe(true)
    .Visible(false)
    .Draggable()
    .Resizable()
)

当我单击列字符串时,弹出窗口 window 未打开。代码有什么问题??

将您的客户端模板更改为:

"<a href='\\#' data-id='#=Id#'>View Details</a>"

这将打印一个 link,例如:<a href='#' data-id='1'>View Details</a>。然后将您的 jQuery 更改为:

$("[data-id]").on("click", function () {
    var id = $(this).data('id'); // Here's the Id of the item which user have clicked
    $("#Proposal").data("kendoWindow").open();
});

发生了什么事?

  • link 被设置为没有 url 或有效的锚点 (href="#") 因此单击它不会执行任何 visible 对用户的操作;
  • 为每个名为 id 的项目添加了一个数据属性,因此您可以通过 .data("id") 和 jQuery.
  • 访问它

现在在点击事件中您点击了 id 并且您可以用它打开详细视图。