2012-02-27 63 views
1

我無法理解AutoEventWireup。 我有標記網頁下面的代碼AutoEventWireUp = true和PAge_Load添加在代碼後面的句柄。只調用一次Page_Load函數一次

<%@ Page Language="vb" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="TestWebApp._Default" %> 

,並在代碼隱藏文件

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    sTest = sTest & " IN Page load " 
End Sub 

當提到有關該屬性爲 http://www.c-sharpcorner.com/uploadfile/puranindia/what-is-the-autoeventwireup-attribute-in-Asp-Net/

解釋這個頁面加載會被調用兩次但是page_load函數只調用一次。誰能幫我? 爲什麼?

+0

代替'Handles'關鍵字,嘗試在'OnInit'或'Page_Init'中使用'AddHandler' - 例如'AddHandler Me.Load,AddressOf Page_Load' – VinayC 2012-02-27 10:22:13

回答

0

你鏈接的文章說:

可以產生相同的事件代碼調用兩次

我認爲這是很有些誤導,因爲它不意思是必須結果那樣。

會,如果您已聲明在標題中的事件處理程序:

onload="Page_Load"

或已明確添加它:

this.Load += new EventHandler(this.Page_Load);

因爲它會被稱爲因手動訂閱AutoEventWireup

因此,如果您只設置了AutoEventWireuptrue而沒有自己訂閱該事件,則只會調用一次。