gpt4 book ai didi

c# - 使用 Kendo 菜单打开多个窗口

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:08 27 4
gpt4 key购买 nike

我有一个剑道菜单,我希望每个菜单都打开一个新窗口。我怎样才能做到这一点?

这是我当前在 _layout 中的代码:

<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>

然后我在我的索引中创建了这个默认窗口:

@(Html.Kendo().Window()
.Name("win1")
.Title("default")
.LoadContentFrom("Index", "default")
.Draggable()
.Resizable()
.Actions(actions => actions.Close().Minimize().Refresh())
.Position(p => p.Top(100))
)

这段代码有两个问题:

  1. 我想要多个窗口。
  2. 窗口的刷新按钮加载上一页的旧内容。

最佳答案

要拥有多个窗口,您可以创建一个局部 View ,将其注入(inject)到您的 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();
});
}

关于c# - 使用 Kendo 菜单打开多个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29817307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com