C# 使用剑道菜单打开多个窗口
我有一个剑道菜单,我想每个菜单打开一个新窗口。我怎样才能做到这一点 这是我在C# 使用剑道菜单打开多个窗口,c#,jquery,.net,kendo-ui,kendo-asp.net-mvc,C#,Jquery,.net,Kendo Ui,Kendo Asp.net Mvc,我有一个剑道菜单,我想每个菜单打开一个新窗口。我怎样才能做到这一点 这是我在\u布局中的当前代码: <div class="k-rtl"> @(Html.Kendo().Menu() .Name("menu") .Items(items => { items.Add().Text("Menu 1").Items(child => { child.Add().Text("1").LinkHtml
\u布局中的当前代码
:
<div class="k-rtl">
@(Html.Kendo().Menu()
.Name("menu")
.Items(items =>
{
items.Add().Text("Menu 1").Items(child =>
{
child.Add().Text("1").LinkHtmlAttributes(new { onClick = "menu('1');" });
child.Add().Text("2");
});
})
)
</div>
<script>
function menu(text) {
var window = $("#win1").data("kendoWindow");
switch (text) {
case "1":
window.refresh({ url: "@Url.Action("Index", "1")" }).title("1");
break;
case "2":
window.refresh({ url: "@Url.Action("Index", "2")" }).title("2");
break;
}
window.open();
}
</script>
<script>
function menu(text) {
$('.body-content').load('/Home/win?window='.concat(text));
}
</script>
我对此代码有两个问题:
要拥有多个窗口,您可以创建一个局部视图,并将其注入HTML代码(
@HTML.partial(“MyGenericWindow”)
),确保每次都生成一个新的窗口ID(名称)
像这样:
@{
var windowId = Guid.NewGuid().ToString();
}
@(Html.Kendo().Window()
.Name(windowId )
.Draggable()
.Resizable()
.Actions(actions => actions.Close().Minimize().Refresh())
.Position(p => p.Top(100))
)
要解决刷新问题,请尝试以下操作:
function menu(text) {
var window = $("#@windowId").data("kendoWindow");
window.title(text);
window.refresh({
url: '@Url.Action("Index")',
data: { myParam: text }
});
window.bind("refresh", function () {
window.center();
window.open();
});
}
好吧,这是我最后的解决办法
\u布局中的JS脚本
:
<div class="k-rtl">
@(Html.Kendo().Menu()
.Name("menu")
.Items(items =>
{
items.Add().Text("Menu 1").Items(child =>
{
child.Add().Text("1").LinkHtmlAttributes(new { onClick = "menu('1');" });
child.Add().Text("2");
});
})
)
</div>
<script>
function menu(text) {
var window = $("#win1").data("kendoWindow");
switch (text) {
case "1":
window.refresh({ url: "@Url.Action("Index", "1")" }).title("1");
break;
case "2":
window.refresh({ url: "@Url.Action("Index", "2")" }).title("2");
break;
}
window.open();
}
</script>
<script>
function menu(text) {
$('.body-content').load('/Home/win?window='.concat(text));
}
</script>
MyGenericWindow
PartialView:
@model WindowViewModel
@(Html.Kendo().Window()
.Name(Model.Name)
.Draggable()
.Actions(actions => actions.Close().Minimize().Refresh()).LoadContentFrom(Model.Url)
.Title(Model.Title)
)
和WindowViewModel
:
public class WindowViewModel
{
public string Title { get; set; }
public string Url { get; set; }
public string Name { get; set; }
}
谢谢你,瓦什。它解决了刷新问题。我只是不知道在哪里呈现我的局部视图,以及如何获取它的句柄来加载内容?我在js代码中遇到错误。我当前正在尝试类似的操作:
var a=$(“.body content”).append(@Html.Partial(“\u GenericWindow”)嘿,瓦什,你看到我的评论了吗!?我在等你D对不起,我周末不加班。:)