如何在按钮单击事件上加载视图作为Kendo窗口弹出窗口

时间:2014-04-01 19:56:38

标签: javascript jquery asp.net-mvc modalpopupextender onclientclick

我正在尝试在单击按钮事件的加载窗口 中加载视图。 实际上,每次在基页的加载时都会显示弹出窗口。我希望弹出窗口仅加载按钮的click事件。

我错过了什么吗?我还在html按钮中添加了onclick事件,并调用了openWindow()javascript方法。但它也没有用,显然有些不对劲。

是否可以将kendo Window的服务器代码放在jquery函数中?如果有,怎么样?

<% Html.Kendo().Window()
      .Name("partListGridWindow")
      .Width(800)
.......
%>

这是我的代码JQuery:

$(document).ready(function () {
   $("#partListLink")
        .bind("click", function () {
            $("#partListGridWindow").data("kendoWindow").open().center();
        });
});

剑道窗口: 在LoadContentFrom中,我从Claim Controller调用PartList,它是返回我的View的Action Name。

<% Html.Kendo().Window()
               .Name("partListGridWindow")
               .Width(800)
               .Modal(true)
               .Title("Part List Info")
               .Content("Loading Part List Info...")
               .LoadContentFrom("PartList", "Claim", Model)
                //.Visible(false)
               .Draggable()
               .Resizable()
               .Render();
%>

这是html按钮:

<a id="partListLink" class="k-button" onclick=openWindow()></a>

顺便说一下,我在Telerik论坛上看到他们推荐这个公式用 Visible = false 隐藏窗口,但它应该是一种绕过负载的方法基页开头加载的那些窗口。

如果要加载几十个或更多弹出窗口,该怎么办?

非常感谢任何帮助! 非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

如果你的Kendo Window在基页加载时填充你必须设置 .Visible(false)。这就是我们在之前项目中的表现。

这是点击事件

function clientLaunchWindow() {

     var window = $("#Window").data("kendoWindow");

     window.refresh({
             url: "/Order/LaunchWindow"        
     });      
     window.center();
     window.open();

您的控制器将返回部分视图

public ActionResult LaunchWindow()
    {
       return PartialView("_PartialView");
    }

答案 1 :(得分:0)

你好,伴侣,我非常了解您的问题。 kendo的默认功能似乎是通过基本页面加载来加载内容。 您应该添加内容而不是LoadcontentFrom链。并定义一个div并为此设置一个ID。 在按钮单击功能中,您应该进行ajax调用并获取内容并将其加载到为div设置的ID中。

<% Html.Kendo().Window()
               .Name("partListGridWindow")
               .Width(800)
               .Modal(true)
               .Title("Part List Info")
               .Content(@<text>
                <div id="WindowContent"> </div> </text>)
               .Visible(false)
               .Draggable()
               .Resizable()
               .Render();
%>
  

您的按钮是:

function openWindow(e) {
        var GridWindow = $("#partListGridWindow");
        GridWindow.data("kendoWindow").open().center();

    $.ajax({
        type: "GET",
        url: '@Url.Action("LaunchWindow", "Controller")',
        cache: false,
        data: { "x": 1 },

                success: function (result) {
                    if (result) {

                        $("#WindowContent").html(result);
                    }
                    else {
                        $("#WindowContent").html(<h2>No Content found</h3>)
                    }
                }
            });
}