2012-02-20 91 views
0

我正在asp.net中編寫一個web應用程序。 我有一個aspx頁面,調用一個類(測試),生成一個按鈕並返回按鈕。 類構造函數獲取按鈕點擊事件應該激活功能(userClickOnButton) 和 插入到button.click + =事件處理(「功能(userClickOnButton)的名稱」);我創建的asp.net調用按鈕單擊事件

問題是,在aspx後面的代碼中,我使用IsPostBack(無法取消它,需要此條件),當我點擊按鈕時progrem不會去我爲按鈕創建的事件,但是當我脫掉IsPostBack條件程序確實去我創建的事件(函數userClickOnButton)。

我的代碼是:落後

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     Test test = new Test(userClickOnButton); 
     Button button = test.AddButton(); 
     cell.Controls.Add(button); 
    } 
} 

private void userClickOnButton(object sender, EventArgs e) 
{ 
    this.ModalPopupExtenderSelectFilds.Show(); 
} 

我的課 的aspx代碼

public class Test 
{ 

Action<object, EventArgs> m_ButtonClickActivateFunction; 

public Test(Action<object, EventArgs> func) 
{ 
    m_ButtonClickActivateFunction = func; 
} 

public Button AddButton() 
{ 
    Button button = new Button(); 
    button.Text = "select"; 
    button.ID = "buttonID"; 
    button.Click += new EventHandler(m_ButtonClickActivateFunction); 

    return button; 
} 

需要幫助,而不取出的IsPostBack條件

感謝

+0

沒有回傳如何服務器知道它?但是,您可以通過Ajax – alexsuslin 2012-02-20 15:47:47

+0

的幫助來完成此操作,而無需回傳,您能告訴我該怎麼做嗎? – user723686 2012-02-20 15:50:24

+0

我只能向你展示http://www.asp.net/ajax。你是必須經過它的人。如果在Page_Load – alexsuslin 2012-02-20 15:53:14

回答

1

我來激活事件認爲asp.net不處理點擊按鈕 不復存在。由於回發時不重新創建按鈕,因此該按鈕因此不再存在於頁面的控件集合中,因此不處理該事件。

處理事件的發生Page_Load後,所以Page_Load應該重新創建按鈕。

看看這裏以及:Asp.Net Page Life Cycle