2009-10-16 87 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

相关问题