【问题标题】:Alternatives to MultiView in ASP.NETASP.NET 中 MultiView 的替代方案
【发布时间】:2010-01-19 07:44:54
【问题描述】:

我正在构建的网站包含大量视图,这些视图将显示在同一位置,但根据用户导航菜单的方式隐藏或显示。

当您拥有一个包含 10 个不同视图的 MultiView 时,Visual Studio 的设计视图会变得非常混乱。我已经在几个用户控件中分离了每个视图的内容。但是有没有 MultiView 的替代品?

【问题讨论】:

  • 为什么可以在 asp.net 中使用向导

标签: asp.net multiview


【解决方案1】:

我通常只使用面板或占位符并手动切换可见性。但是后来我也不用 VS 设计器...

【讨论】:

    【解决方案2】:

    假设您在这里使用 ASP.NET 网络表单...

    这是投资一些强大的 Web 控件(如 Telerik ASP.NET 控件套件)的另一个原因。

    您可以将他们的 RadTabStrip 控件与 RadMultiPage 控件一起使用。

    此处示例:http://demos.telerik.com/aspnet-ajax/tabstrip/examples/multipage/loading-external-content/defaultcs.aspx

    您可以为每个 RadPageView 指定一个 ContentUrl,它允许您将每个视图分隔为单独的 aspx 文件。

    这通过将每个视图分成各自的页面来简化您的解决方案,并提高性能,因为仅在最初查看时才请求 RadPageView 内容。

    【讨论】:

      【解决方案3】:

      我这样做的方法是在页面上放置一个占位符,并根据需要动态添加控件。

      从您所说的看来,用户浏览菜单并决定在 MultiView 控件中显示哪个视图...

      我想要这样的东西

      ASPX 文件:

      <asp:PlaceHolder id=phContentContainer" runat="server"></asp:PlaceHolder>
      

      代码背后

      switch (MenuSelection)
      {
           case "LOGIN" //Display the login control
           {
              ucLoginUserControlType loginControl = (ucLoginUserControlType)LoadControl("~/UserControls/ucLoginUserControlType.ascx");
      
              phContentContainer.Controls.Add(loginControl);
           }
      }
      

      显然,您希望代码隐藏比上面的 10 个视图更高效、更简洁……但您明白了。

      这使您的 aspx 页面保持简单,并使未来的控件添加更容易实现。

      希望这会有所帮助,我是从记忆中键入代码的,所以某些语法可能不正确 - 如果你不能让它运行,请大声告诉我,我会挖掘一些我何时完成此操作的示例。

      祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        • 2017-02-03
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 2020-02-23
        相关资源
        最近更新 更多