2009-07-06 23 views
4

是什麼使用一個ASP.Net按鈕的onclick屬性之間的差異:ASP.Net的OnClick VS功能()處理buttonName.Click

<asp:Button ID="btn" runat="server" Text="New" OnClick="enterFunctionHere" />

直接使用事件在功能:

Sub addNew() Handles btn.Click

謝謝!

UPDATE

如果我能在VB,哪個好兩者都做?他們是平等的嗎?

回答

8

至少,在第一個選項,用於.aspx頁生成的類是負責佈線事件處理程序(並且因此,需要在事件處理程序是Protected);而在第二個選項中,代碼隱藏類負責連接事件處理程序(因此事件處理程序可以是Private)。

我並不熟悉在VB.NET中如何實現Handles關鍵字,但它也可能影響連線的時間(我知道在代碼隱藏的OnInit方法中連接事件將連線該方法在頁面循環中的不同時間,而不是通過標記進行連接,以及一些不太重要的情況)。

我個人更喜歡使用Handles方法(或在OnInit覆蓋中使用C#中的+=)。這允許編譯器驗證這些方法是否存在,並且不必不必要地暴露給繼承類。也正在編制使用時重構工具,查找用法等

+0

爲了詳細說明bdukes寫的是什麼,你必須首先了解ASPX文件如何轉換成C#類,以及它如何與類背後的代碼相關聯。一旦你明白了這一點,你就會知道'實際'這兩種方法並沒有區別。 – SolutionYogi 2009-07-06 19:44:25

0

兩個添加事件處理程序。 VB.Net提供句柄,而不是C#。

此外,您還可以在代碼與頁面的AddHandler的方法添加事件。

0

第一種是使用C#代碼的網頁如何後面註冊事件的功能的例子。這一個然後需要一個匹配定義的方法。

第二個是事件連接到一個函數的vb.net方式。

+0

這不是關於C#或VB.NET。我認爲這個問題更多的是關於把OnClick放在你的ASPX頁面與在你的代碼隱藏文件中創建事件處理器的區別。 – SolutionYogi 2009-07-06 19:42:56

1

有沒有明顯的差異幫助。兩者相當於使用AddHandler關鍵字。使用OnClick屬性與可能使用C#的ASP.NET代碼更兼容,而使用Handles關鍵字與Windows Forms VB.NET代碼更兼容。