ASP.NET的MultiView控件的适当用法是什么?

时间:2020-03-06 14:59:16  来源:igfitidea点击:

在哪些情况下,MultiView将是一个不错的选择? MultiView控件及其View控件似乎只是在扩展面板的概念。

面板和MultiView似乎都容易受到滥用。如果UI问题和biz逻辑问题适当地分开,为什么要在单个ASPX中将视图合并在一起?

解决方案

我已在传递中使用它来实现一个简单的启用Ajax的选项卡界面。

设置按钮样式以使其看起来像选项卡,然后将其设置为onClick事件以在更新面板中切换活动视图。

我已将MultiViews用作向导控件的更灵活的基础。

我确实同意,将大量的观点集中在一起是一种代码味道。在使用向导的情况下,我们通常希望在整个过程中共享许多状态。多视图允许将此状态简单地存储在视图状态中。

大多数时候,我使每个视图的内容成为单个用户控件,它可以封装与该特定步骤相关的逻辑。

任何时候我们想要基于某种条件在页面上显示不同的内容。在工作中,我创建了一个仅使用MultiView的选项卡控件,以及我制作的另一个看起来像选项卡的简单控件。每个选项卡在另一个控件中都放置了一个链接(样式化),该控件已连接起来以将活动视图设置为正确的选项卡。

它对于在线表单之类的东西很有用,在该表单中,我们可能有一个视图显示实际表单,而另一个视图在后缀上显示"谢谢"文本等。

如果我们发现自己切换一个或者多个面板的显示,则是MultiView控件的最佳选择。例如,更模板化的向导控件,或者主/详细信息表单。

我同意它们开放供滥用,我们应该评估在使用它们之前是否最好将代码分成单独的页面。我已经在以前的开发人员试图使用MultiViews将太多内容放到单个页面上的项目中工作,而他们的工作实在是太糟糕了。

使用MultiView时要注意的一件事是,与面板不同,即使包含在其中的视图不是活动的/可见的,与面板中包含的任何声明性数据源控件也将始终绑定。