我正在使用Visual Studio 2012專業版。我沒有看到在頁面指令中爲AutoEventWireup屬性設置「true」與「false」之間的差異。它始終表現爲「真實」,意義 - 我設置「false」並且不顯式綁定事件,但事件隱含地綁定。請讓我知道我是否缺少任何東西。AutoEventWireup True Vs False
4
A
回答
7
這個設置不是關於觸發事件,而是關於綁定處理程序到標準頁面事件。比較說明處理Load
事件的這兩個片段。
首先,AutoEventWireup="true"
:
public class PageWithAutoEventWireup
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Page_Load is called");
}
}
其次,隨着AutoEventWireup="false"
:
public class PageWithoutAutoEventWireup
{
overrie void OnInit(EventArgs e)
{
this.Load += Page_Load;
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Page_Load is called");
}
}
Load
活動將逐頁被解僱,在這兩種情況下你的代碼來處理。但在第二種情況下,您必須明確註冊該事件,而在第一種情況下,ASP.NET會爲您做所有事情。
當然,這同樣適用於其他頁面生命週期事件,如Init
,PreRender
等
3
我知道這是一個古老的線程,但想我會添加以下,最近幫我:
除了Andrei的回答,值得添加的是,通過將AutoEventWireup設置爲「true」,每次頁面加載時都有兩次調用Page_Load()的風險。這發生在我身上。它的解釋完全here,從那裏我複製了以下內容:
不要設置AutoEventWireup爲true,如果性能是一個關鍵考慮 。當啓用自動事件連接時,ASP.NET必須在 之間進行15到30次嘗試,以將事件與方法進行匹配。
請注意以下有關事件處理程序綁定到事件:
如果您設置AutoEventWireup爲true,請確保你不也 手動附加頁事件處理程序的事件。如果這樣做,處理程序 可能會被調用多次。
僅對頁面事件執行自動綁定,而不對頁面上的控件執行事件 。
作爲將事件綁定到處理程序的替代方法,您可以覆蓋頁面或控件的Oneventname方法 。
相關問題
- 1. FALSE和TRUE VS NULL和TRUE
- 2. PHP memory_get_usage(false)vs memory_get_usage(true)
- 3. JavaScript disabled = true vs ASP.NET Enabled = False
- 4. Nunit Assertions - Assert.False(true)vs Assert.True(false)
- 5. 默認情況下設置AutoEventWireup =「false」
- 6. false或true!= true或false!= true ||假
- 7. sublime text 2 reindent single-line true vs false
- 8. XML false vs(string)false
- 9. C#How false false == true?見圖
- 10. PHP boolean TRUE/FALSE?
- 11. not(not false)= True?
- 12. String和True/False
- 13. EnableViewstate = true/false
- 14. jQuery true和false
- 15. Javascript布爾值:false && true true results in true
- 16. Session.Logon()vs Session.Logon(,, True,True)
- 17. 需要ASP.NET MVC AutoEventWireup?
- 18. false and(true && print('hi'))
- 19. 返回true或false?
- 20. fs.exists()是true和false
- 21. jQuery值true和false
- 22. Class Dynamic Change true/false
- 23. Excel Macro - True/False VBA
- 24. 替代label.visible = true/false
- 25. Toggle cookie true false magento
- 26. Javascript函數true/false
- 27. Python Return True或False
- 28. Boolean.getBoolean(「true」)返回false
- 29. objective-c中的YES/NO,TRUE/FALSE和true/false是否有區別?
- 30. 如何將bool true或false轉換爲字符串「True」或「False」
即使我們設置AutoEventWireup =「false」,事件也會隱式綁定。含義 - 事件在第二個片段中隱含地沒有以下代碼註冊。 override void OnInit(EventArgs e) { this.Load + = Page_Load; } – afin 2013-02-23 07:54:36
@afin,聽起來很奇怪。你能否顯示你的代碼? – Andrei 2013-02-23 08:10:30
對不起,我感到困惑。我誤解了你的答案。您的意思是說AutoEventWireup僅適用於頁面事件,它不會影響其他事件,如控件的「單擊事件和控件」更改事件。含義 - 除頁面事件外,將隱式綁定,與AutoEventWireup值無關。我可能對嗎? – afin 2013-02-23 13:37:52