将选项卡添加到mvc上的tabpanel

时间:2014-06-29 12:33:41

标签: ext.net

我有一个菜单和一些菜单项。当我点击菜单项时,我创建了新的panle codebehind并将其添加到主tabpanel.so那么好,但似乎每次点击菜单,面板从开始创建,加上,改变tab的位置。我可以解决这个问题。

这是我的Index.cshtml

 <body>
        @Html.X().ResourceManager()
          @(
     Html.X().Viewport()
                        .Layout(LayoutType.Border)
                        .Items(
                            Html.X().Panel()
                                .Region(Region.West)
                                .Title("main menu")
                                .Width(200)
                                .Collapsible(true)
                                .Split(true)
                                .MinWidth(175)
                                .MaxWidth(400)
                                .MarginSpec("5 0 5 5")
                                .Layout(LayoutType.Accordion)
                                .Items(


                                    Html.X().MenuPanel()
                                        .Collapsed(true)
                                        .Icon(Icon.Note)
                                        .AutoScroll(true)
                                        .Title("menu")
                                        .ID("PNL34")
                                        .BodyPadding(0)
                                        .Menu(menu => {

                                            menu.Items.Add(Html.X().MenuItem().ID("1a").Text("test1").Icon(Icon.Anchor)
   .DirectEvents(m => { m.Click.Url = "Desktop/AddTab";
 m.Click.ExtraParams.Add(new { conid = "TabPanel1" ,pnlid="tabpnl10",viewname="Urunler"});
                     }));


                                            menu.Items.Add(Html.X().MenuItem().ID("2a").Text("test2").Icon(Icon.Anchor)
             .DirectEvents(m =>
                                          {
                       m.Click.Url = "Desktop/AddTab";
                m.Click.ExtraParams.Add(new { conid = "TabPanel1", pnlid = "tabpnl11", viewname = "Siparisler" });
                                          }));


                                        })

            )
                                ,

                           Html.X().TabPanel()
                           .ID("TabPanel1")

                                .Region(Region.Center)
                                .Title("E-TICARET")
                                .MarginSpec("5 5 5 0")

                )) 

和代码隐藏控制器

   public ActionResult AddTab(string conid,string pnlid,string viewname)
    {
        var cmp = this.GetCmp<Panel>(pnlid);
        var cmp2 = this.GetCmp<TabPanel>(conid);

            if (cmp.ActiveIndex==-1)
            {


                var result = new Ext.Net.MVC.PartialViewResult
                {
                    ViewName = viewname,
                    ContainerId = conid,
                    RenderMode = RenderMode.AddTo,
                    WrapByScriptTag = false

                };


             cmp2.SetActiveTab(pnlid);
                return result;
            }

        else
        {

            return null;
        }
    }

1 个答案:

答案 0 :(得分:2)

这不起作用。

if (cmp.ActiveIndex == -1)

在WebForms中,它是从Post数据中检索的。 MVC中没有类似WebForms的帖子。您应该通过请求发送所有必需的信息。

此外,如果您不需要呈现选项卡(如果已存在),则只需停止请求即可。您可以在客户端确定是否已有选项卡。