2010-12-23 121 views
0

我有一個按鈕,包含在一個面板中,點擊事件,工作正常。然而,當用戶按下另一個按鈕,我需要這個按鈕移動到另一個面板(這實際上是一個modalpopupextender面板),所以我這段代碼可以這樣做:移動按鈕停止單擊事件發生

newPanel.Controls.Add(buttonPanel) 

這一切得到的感動,看起來很好。但是現在,當按鈕被點擊時,它不會觸發相關的事件。我嘗試在page_init中重新添加事件,使用此代碼

((Button)this.FindControl("serverModalSave")).Command += new CommandEventHandler(modalSave_Click); 

但是沒有運氣。我怎樣才能讓這個按鈕在移動時觸發它的點擊事件,爲什麼當它移動時它會停止工作?

編輯:

這個按鈕需要被添加到在運行時用戶指定的面板,所以沒有辦法來確定按鈕將提前走了。

我可以代替移動此按鈕,創建一個新的,但因爲這個按鈕不是在page_init中創建的,我有問題得到這個來觸發一個事件。

回答

2

而不是移動按鈕,另一個面板上的另一個按鈕設置爲隱藏。

隱藏您想要移動的按鈕,並在需要時顯示隱藏的按鈕。

移動控件會更改命名層次結構,現在無法找到該按鈕,並且點擊事件無法觸發。

這是由於page life cycle的工作原理。 Here是一個很好的(如果有點過時的)關於視圖狀態如何工作的文章 - 如果你明白這一點,你就會明白出了什麼問題。

+0

這是我的問題,面板按鈕獲取的加入將在運行時間變化,就沒有辦法事先哪個面板才知道將需要添加到,所以我必須移動它。另一種選擇是動態地向面板添加一個新按鈕,但是我也遇到了一些問題。 – 2010-12-23 12:14:59

0

如果您正在新面板中創建按鈕,當點擊此按鈕時,您是否在回發中重新創建它?

您必須重新創建在每次回發的所有控​​件看here