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

问题描述:

MultiView会是一个不错的选择吗? MultiView控件及其View控件似乎只是扩展了面板的概念。什么是适用于ASP.NET的MultiView控件?

Panels和MultiView似乎很容易被滥用。如果你的用户界面关注和biz逻辑问题被恰当地分开,为什么在一个ASPX中整合视图?

我已经使用MultiView作为Wizard控件的更灵活的基础。

我确实同意,将大量视图集中在一起是一种代码味道。在向导的情况下,通常会在整个过程中分享很多您想要共享的状态。多视图允许这种状态被简单地存储在视图状态中。

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

我用它在通过实现一个简单的支持Ajax的标签界面。

样式的按钮看起来像一个标签,然后将其设置的onClick事件以切换活动视图中的更新面板。

要展示基于一些条件页面上的不同内容的任何时间。在工作中,我创建了一个只使用MultiView的Tab控件,而另一个简单的控件我看起来像标签。每个标签页都会在另一个控件中放置一个链接(标有样式),以便将活动视图设置为正确的标签页。

它可以是对于像在线表单,在那里你可以有一个显示实际形成一个视图和另一个视图与“谢谢”等文字显示后记有用

你发现自己所在的切换任何情况下,显示一个或多个面板是MultiView控件的主要候选对象。例如,更多的模板化向导控件或主/细节表单。

我同意,他们是开放的滥用,你应该评估是否最好使用它们之前分离您的代码放到单独的页面。我曾参与过以前的开发人员尝试使用MultiView将过多的内容放到单个页面上的项目,他们纯属合适。

有一两件事要警惕与多视图是,不像板,里面包含他们的任何声明数据源控件将始终绑定,即使它们包含在视图中未激活/可见。