2010年4月21日 星期三

AutoEventWireUp='false' 時如何繫結網頁事件(Page_Init, Page_Load)

當 ASP.NET 中 <%@ Page Language="C#" AutoEventWireup="False" ... 時,網頁事件(Page_Load, Page_Init...),將不會自動繫結,也就是說載入網頁時,並不會執行這些事項,主要原因是:
VS 會利用 AutoEventWireup="True" 自動找尋對應的EventHander,但 AutoEventWireup="False" 時,就不會自動對應,以致這些網頁事件失效。

解決方式是在 CodeFile 的 Page Class 中加入建構子:

public partial class myPage : System.Web.UI.Page
{
public myPage() {
Init += new EventHandler(Page_Init);
//在myPage的Init事件中,繫結到 Page_Init (事件處理程名稱可自定)
Load += new EventHandler(Page_Load);
}

protected void Page_Init(Object sender, EventArgs e)
//事件處理程序,名稱要和上面繫結者相同


如利用 AutoEventWireup="True" 自動找尋對應的EventHander,則會自動以 Componet_Event 方式對應。

沒有留言:

張貼留言