2013-05-09 79 views
0

我有以下代碼,它具有頁面加載事件處理程序和一個按鈕單擊事件處理程序。頁面生命週期中的按鈕單擊之前調用該處理程序。可以在Page_Load之前調用按鈕單擊事件處理程序嗎?

是否有任何方案,其中按鈕單擊處理程序之前頁面加載處理器將被調用? (由於某些驗證控制等)。

如果保證Page_Load將被永遠調用,我不需要在按鈕點擊處理程序中調用MyGetCount()函數。

public partial class WebForm1 : System.Web.UI.Page 
{ 

    int tableDataCount = 0; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     string val = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 
     //Get the count inside page load 
     tableDataCount = MyGetCount(); 
    } 

    protected void btnAction_Click(object sender, EventArgs e) 
    { 
     Response.Write(tableDataCount.ToString()); 
    } 

    private int MyGetCount() 
    { 
     int count = 135; 
     //Logic for count 
     return count; 
    } 

} 
+0

http://msdn.microsoft。 COM/EN-US /庫/ ms178472(v = VS.100)的.aspx – 2013-05-09 11:29:51

回答

1

在頁面加載之前沒有按鈕點擊處理程序被調用的情況,這也是不可能的。在頁面加載中,所有的控件都被初始化,只有這樣才能調用控件的事件處理程序。

4

這是有保證的。控件事件處理程序始終在頁面加載階段完成後調用。參考檢查這MSDN article

0

「任何情況」? 不是在所有答案中提到的ASP.Net回發/頁面生命週期場景中,但是由於您已經問過「任何」,您可以嘗試(重寫)並將您的方法暴露給客戶端腳本。

雖然這是不是真的關於「處理程序」或事件,它是關於方法....

只是一個想法....

相關問題