我正在尝试在单击按钮事件的加载窗口 中加载视图。 实际上,每次在基页的加载时都会显示弹出窗口。我希望弹出窗口仅加载按钮的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 隐藏窗口,但它应该是一种绕过负载的方法基页开头加载的那些窗口。
如果要加载几十个或更多弹出窗口,该怎么办?
非常感谢任何帮助! 非常感谢你的帮助!
答案 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>)
}
}
});
}