2009-10-16 105 views
0

我正在構建一個模式框作爲自定義服務器控件,我想在模態框TargetControlID上有一個屬性,指定單擊時將顯示模式的元素。我給自己定的屬性了在模態對話框,並在後面的代碼我使用下面的代碼塊(這是我在幾個不同的地方如何從我的自定義服務器控件中訪問頁面控件?

If (_targetControlId <> "") Then 
     Dim targetControl As WebControl = Me.Page.FindControl(_targetControlId) 
     targetControl.Attributes.Add("onclick", "test1();") 
     targetControl.Attributes.Add("onclick", "test2();") 
    End If 

什麼情況是,targetControl總是捲起爲NULL已經試過,並導致頁面崩潰時,我試圖添加屬性,我已經雙重檢查targetControlId的拼寫,我指定一個控制是runat =「服務器」。什麼是服務器控制正確的方式來它包含的頁面上訪問其他控件?

感謝,

邁克

+0

您是否在使用MasterPage? – Jim 2009-10-16 19:35:31

回答

0

首先,我應該指出,您正在尋找的行爲已經存在於免費的開源AjaxControlToolkit附帶的ModalPopupExtender中。我建議你只使用它。如果你確定自己想寫自己的代碼,那麼我建議至少看看他們的代碼,看看他們如何去做。 ExtenderControlBase.FindControlHelper是一個很好的開始。

+0

你是對的,我應該隨擴展器一起去。我剛剛創建了自己的CollapsiblePanel,因爲CollapsiblePanelExtender不太適合我的需求,但模式擴展器應該完全符合我的要求。謝謝。 – mclark1129 2009-10-18 21:31:14

相關問題