如何在ASPX页面上调用ASCX页面功能?

时间:2013-04-05 17:38:06

标签: asp.net vb.net user-controls webusercontrol

我在运行时添加了WebUserControl,因此我无法使用MyWebUserControl.MyFunction(),我有一个MasterPage,我试过这个:

_MainContentPage = CType(_Page.Form.FindControl("MyContentPlaceHolder"), ContentPlaceHolder)
CType(_MainContentPage.FindControl("MyWebUserControl"), myType)

但是_MainContentPage.FindControl("MyWebUserControl")会返回一个TableCell。

我添加WubUserControl的方式:

tcValue = New TableCell()      
tcValue.Controls.Add(_Page.LoadControl("Paht/WebUserControl"))
tcValue.ID = "MyWebUserControl"

那就是因为_MainContentPage.FindControl("MyWebUserControl")返回一个TableCell 但是如何获得Web控件并调用Fcuntion。

2 个答案:

答案 0 :(得分:0)

将该函数作为Web方法或在asp.net http处理程序中提取该函数以进行全局访问是多么困难。我认为这样你可以做得更好,而不是使用反射和其他东西来访问它。

答案 1 :(得分:0)

解决方法是获取TableCell然后找到控件,然后调用该函数。

_MainContentPage = CType(_Page.Form.FindControl("MyContentPlaceHolder"),ContentPlaceHolder)
MyTableCell =  CType(_MainContentPage.FindControl("MyWebUserControl"), TableCell)
MyWebControl = CType(MyTableCell.Controls(0), MyType)
MyWebControl.MyFunction()