欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入 在用view控件实现一系列业务操作的分步操作时发现了一个问题,在某个View中实现了如下功能:A控件放在其中一个View中,用控制A控件的显示和隐藏(Visible)的方法表示业务中存在A和不存在A的情况,并用来作为一个属性的字段。
切换View前读取此属性无任何问题,可当切换View后读取此属性一直为不存在,也就是A控件的Visible属性一直为False.跟踪代码也确实如此。
不知道这种情况是否。net的一个bug,可能跟asp.net的View与MultiView的实现方式有关吧,本人正在查找资料,但网上讲应用的多原理的少,无奈正准备去慢慢看View的源代码。
希望有兴趣的xdjm共同探讨。
下面我先抛砖引玉,说一下我的理解。
首先从Visible这个属性说起,我发现官方提供的web控件都继承自System.Web.UI.Control这个类,同时,Control 类的Visible这个属性是个virtual属性的方法。本人猜测当隐藏和现实一个View容器,可能通过的是改变其内所有控件Visible属性来实现的,毕竟这样对于多个同根的派生类来说实现起来很简单。