首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接多个asp.NET MultiViews

链接多个asp.NET MultiViews
EN

Stack Overflow用户
提问于 2009-03-24 13:57:55
回答 2查看 1.1K关注 0票数 0

我正在处理的母版页分裂成各种内容占位符,如往常一样。在许多页面上,我使用多视图根据不同的查看模式(查看/编辑/添加)来显示和隐藏内容。这意味着每个母版页内容占位符都有一个多视图...

当我需要切换查看模式时,麻烦就来了,比如从“查看”切换到“编辑”。我需要改变页面上的每个多视图来显示相应的信息。所以假设有4个不同的内容占位符,有3个不同的视图模式-那就是12行相当繁琐的代码。

我想知道是否有一种方法可以同步或链接页面上的所有多视图,这样当一个视图发生变化时,它们都会相应地发生变化?就像通过某种主控多视图?

我已经考虑过使用View的Activate事件,但这仍然意味着首先要做大量的连接,这是我试图避免的。

C#eers!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-24 14:31:55

要做到这一点,最好的方法是在母版页上有一个事件,单个多视图向该事件添加一个事件处理程序。

这应该不需要太多代码,您可以通过为所有实例创建一个继承自MultiView的基类来避免重复这些代码。

票数 1
EN

Stack Overflow用户

发布于 2009-03-24 22:48:56

另一个更自动的选项(但性能不如RobW的选项)是递归地查看任何多视图的页面控件。类似于:

代码语言:javascript
复制
ApplyToControlsRecursive(Page, c =>
{
    var multi = c as System.Web.UI.WebControls.MultiView;
    if (multi != null)
        multi.ActiveViewIndex = 1;
});
void ApplyToControlsRecursive(System.Web.UI.Control control, Action<System.Web.UI.Control> action)
{
    action(control);
    foreach (System.Web.UI.Control child in control.Controls)
    {
        ApplyToControlsRecursive(child, action);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/677523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档