对于注册过程,我们有5个不同的页面,开发人员卡在一个页面中(5个部分中的每一个都是一个用户控件)。
一次只能将一个控件设置为可见。
似乎每个控件的page_load
事件同时被触发。
这是设计问题还是预期的行为?
答案 0 :(得分:1)
这就是他们实际工作的方式。由于所有控件都在页面上,并且您只是使用visible属性,因此将触发所有控件加载事件。 如果你想避免这种情况,请在页面上放置一个多视图,其中每个控件都位于该多视图内的自己视图中(让控件可见为真)然后只需更改多视图当前视图索引而不是在用户控件上设置可见/不可见
答案 1 :(得分:0)
对于页面生命周期中同一点的页面上的所有控件,将触发load事件,是的。这是有意的,因此每个控件都可以处理(或不处理)事件并执行操作,例如从数据库中获取数据等等。
无论控件是否可见,都会触发加载事件。你可以能够跳过逻辑而不会破坏任何东西,比如
public yadda yadda yadda OnLoad( ... ) {
if(!this.Visible) return;
//...
}
但是这需要在Load之前正确设置Visible,并且如果你突然跳过所有逻辑,控件也不会中断。
答案 2 :(得分:0)
预计它会依次调用每个控件上的Load。
无论控件是否可见,它仍然在服务器上处理。
答案 3 :(得分:0)
我不认为,这些是“在并列”中加载的。 它们一个接一个地非常快。
默认情况下禁用所有内容,并在页面中依次启用它们 并且只有在启用时才执行自己的pageLoad内容。
另一方面,我强烈建议剥夺您的注册。 永远不需要5页信息,只会吓到可能的新用户。