Asp.Net 4.0
是否可以在代码后面的父页面中调用用户控件中的函数? 用户控件是由其他程序员创建的,但是每个程序员都会有一个我想要的公共函数叫做“Output”,它返回主页需要的值。主页面有一个主菜单,因此根据主菜单选择只显示一个用户控件。
带有用户控件的WebApp中的文件夹:
> UserControls
ProductA.ascx
ProductB.ascx
ProductC.ascx
ProductD.ascx
etc...
当用户点击菜单按钮时代码落后:
Dim product As string = Session("MenuProduct")
Dim uc As UserControl
uc = LoadControl("~/UserControls/" & product & ".ascx")
InputPanel.Controls.Add(uc)
用户控件中的功能我想访问。这将是一个常见的功能。
Public Function Output(ByVal ParamArray expr() As Object) As Object
...code
End Function
答案 0 :(得分:0)
如果具有正确的访问修饰符,则可以从父页面调用userControl中的函数。公众我相信
Dim product As string = Session("MenuProduct")
Dim uc As UserControl
uc = LoadControl("~/UserControls/" & product & ".ascx")
InputPanel.Controls.Add(uc)
if (uc is TypeWithMethod )
{
Dim ucTyped As TypeWithMethod
ucTyped = uc As TypeWithMethod
ucTyped.Method()
}
Vb语法生锈,不断推出;在每一行之后。
答案 1 :(得分:0)
以下是安德鲁所谈论的细节......
Public Interface IGroupable
Function GetGroupId() As Int32
End Interface
Class MyUserControl
Inherits UserControl
Implements IGroupable
Public Function GetGroupId() As Integer Implements IGroupable.GetGroupId
Return 1
End Function
End Class
Class MyPage
Inherits Page
Dim id As Int32 = DirectCast(myUserControl, IGroupable).GetGroupId()
End Class
所以基本上创建一个界面,让所有用户控件实现该界面,然后在网页中加载任何用户控件时......只需将它们CAST到您的界面名称类型....界面将有权访问该功能。