2011-02-12 33 views
3

重要
任何機構都可以解決這個問題嗎?
如何在VS 2008中創建頁面的Init,Load,PreRender等事件處理程序?當我們雙擊頁面時,它將創建Page_Load事件。如何創建頁面的其他事件?我在ASP.NET應用程序中使用c#。
enter image description here
圖像中沒有「事件」選項卡。如何在Visual Studio 2008 IDE中訂閱頁面事件

+2

這是我喜歡關於vb.net的一件事。在代碼視圖中,您可以從所有頁面事件的列表中進行選擇以處理該事件。 Vb.Net默認情況下autoeventwireup = false。我想知道在c#中使用類似的簡單方法。 – ScottE 2011-02-12 17:28:28

回答

3

這是您的答案
在解決方案資源管理器中,右鍵單擊該頁面並從上下文菜單中選擇「查看組件設計器」,現在在屬性窗口中您將擁有事件選項卡。

3

對於訂閱頁面事件有以下幾種方式:

  • 覆蓋的Web.UI.Page類的on_xxx方法。爲了方便您在鍵入override關鍵字時輸入private override,Intellisense會自動告訴您可以覆蓋的可用方法,您可以從中選擇它並按Tab鍵(該方法的原型將自動爲您創建)。

  • 如果頁面設置AutoEventWireup屬性設置爲true,那麼你可以定義與原型和名稱的方法Page_[your event]Page_Init適當的參數。並且事件將自動連接

    ASP.NET頁面框架支持使用Web窗體頁面的AutoEventWireup屬性自動關聯頁面事件和事件處理程序方法的機制。如果@ Page指令的AutoEventWireup屬性設置爲TRUE(或者因爲它的缺省值爲TRUE而未指定),則ASP.NET頁面框架會自動調用頁面事件處理程序方法。

    例如,Page_Init和Page_Load事件處理程序方法由ASP.NET頁面框架顯式調用,沒有顯式事件委託。

    但是,使用AutoEventWireup屬性自動關聯頁面事件及其事件處理程序方法的缺點是事件處理程序方法必須具有標準的預定義名稱。這限制瞭如何命名事件處理程序方法。


以下是頁面事件在他們的訂單摘要:

  • PreInit
  • 初始化
  • InitComplete
  • 預緊
  • 負載
  • 控制事件
  • LoadComplete
  • 的PreRender
  • SaveStateComplete
  • 渲染
  • 卸載


我通常是指這樣cheetsheet樣從MSDN圖像的檢查覆蓋該方法中:

enter image description here

+0

在c#的情況下沒有事件選項卡(那個雷霆圖標) – Student 2011-02-12 16:44:34

+0

誰說我有多年沒有使用它..你最好再次檢查它..似乎有一些問題與您的Visual Studio安裝 – 2011-02-12 16:46:53

+0

...你確定你在設計模式下訪問它,並在代碼視圖中注意 – 2011-02-12 16:47:53

1

此鏈接可能會有幫助 - 它是一個頁面「生命週期」的msdn參考,包括創建其他事件,如你所提到的。

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

除了在頁面控件(按鈕,超鏈接,datacontrols)雙擊,有一個下拉列表中尋找包含頁面的其他「生命週期」事件的C#文件時以及您創建的其他控件事件。

enter image description here

1

我更喜歡的方式是使用在方法來代替,所以類型覆蓋的OnLoad來設置負載的事件處理程序,的OnPreRender等。每個這些方法基本上調用相應的事件處理程序,如在:

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); //don't remove 
} 

我還以爲你可以手動添加事件處理程序:

protected void Page_Init(object sender, EventArgs e) 
{ 

} 

,而無需爲此設置任何東西(沒有明確的升爲事件而來),但我並不完全確定這一點。

HTH。

0

看看這個:http://msdn.microsoft.com/en-us/library/6w2tb12s%28v=VS.90%29.aspx(VS 2008版)

它說,你可以聲明創建一個方法名爲Page_event。

例如,要爲頁面的Load事件創建一個處理程序,請創建一個名爲Page_Load的方法。

ASP.NET頁面自動將頁面事件綁定到名爲Page_event的方法。此自動綁定由@ Page指令中的AutoEventWireup屬性配置,默認情況下該屬性設置爲true。如果將AutoEventWireup設置爲false,則頁面不會自動搜索使用Page_event命名約定的方法。

爲我工作!