ASP.NET中MultiView的替代方案

时间:2010-01-19 07:44:55

标签: asp.net multiview

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

假设你在这里使用ASP.NET webforms ...

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

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

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

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

这可以通过将每个视图分离到自己的页面来简化您的解决方案,并提高性能,因为只有在最初查看时才会请求RadPageView内容。

答案 2 :(得分:0)

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

从你所说的看起来用户导航菜单,这决定了在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页面,并使未来的控件添加更容易实现。

希望这会有所帮助,我已经从内存中输入了代码,所以有些语法可能不正确 - 如果你不能解决这个问题,请给我一个大喊大叫,我会挖掘一些我做完这个的例子。

祝你好运!