异步。回发导致Page_Init? (C#)

时间:2009-09-08 23:01:10

标签: c# asp.net ajax events postback

我遇到了一个非常奇怪的问题...

我有一个带有page_init和page_load函数的常规ASP.Net网页。这是我的理解(从我看到的任何地方)在第一页加载时调用page_init(如同在回发中没有调用过),并且随着页面发生某些事情,调用page_load。(很难找到任何关于这除了死链接和关于页面生命周期的东西之外)

好吧,我有一个包含其他更新面板和其他各种控件的更新面板。无论何时编辑其中一个控件,都会发生异步回发,但不会调用page_load,也会调用page_init,而不会发生这种情况(并且在大代码库更改之前没有发生)

所以我想知道任何可能导致这种行为的事情,或者只是我对如何调用页面事件的想法是错误的。

4 个答案:

答案 0 :(得分:4)

我认为您对页面加载生命周期有错误的想法。每个请求都会调用OnInit事件。在代码中使用Page_Init方法是连接页面OnInit事件的简便方法。

现在我相信你把它与“IsPostBack”属性混淆了,如果一个页面回发给自己,即当你点击一个Button等时,它将被设置为true。我的猜测是你的我们需要做的是在你的Page_Init方法中添加一个if语句,即

if(!IsPostBack){
//Do something to to update the UI
}

答案 1 :(得分:3)

Page_Init肯定会在每次点击,回传或不回复时调用,与Page_Load完全相同。

对每个请求都没有调用Page_Init的误解似乎很常见。

您确定在“大代码库更改”之前没有发生这种情况吗?

答案 2 :(得分:0)

我的建议是,根据这些规则,您可以在全新的临时页面上创建一个简单的示例。

http://msdn.microsoft.com/en-us/library/ms178472.aspx

继续增加现在的复杂程度,直到它破裂为止。

如果没有代码,就很难诊断出你的问题。

答案 3 :(得分:0)

每次都应调用Page_Init和Page_Load这两种方法。