Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用剑道菜单打开多个窗口_C#_Jquery_.net_Kendo Ui_Kendo Asp.net Mvc - Fatal编程技术网

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>
    
    My
    GenericWindow
    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”)