2016-12-16 80 views
0

我有一个母版页的公共属性。我想从一个ascx用户控件访问这个属性。从ascx控制访问母版页

我的母版页被命名为master_public,它位于名为“master”的名称空间中。

于是,我就写:

dim m=ctype(page.master,master.master_public) 
dim foobar=m.foobar 

智能感知说master.master_public不存在。

我试着从母版页中删除命名空间。仍然没有运气。

主页面被声明为“部分公共类”。但这个名字似乎并未被认可。

这里的答案Accessing Master page control in ascx file似乎暗示这应该只是...工作。是否有一些属性或设置或我必须包括的东西,使主页可以作为类类型访问?

+0

尝试重新设计控件,使其不受限于某个特定母版页。例如通过将所需的值注入到控件的构造函数中。 – CodeCaster

回答

0

添加以下你的窗体的顶部(的.aspx):

<%@ MasterType TypeName="master.master_public" %> 

上述指令将暴露母版的形式的公共成员。从形式访问你的财产,简单地引用如下:

Me.Master.YourProperty 

因此,为了获得从添加到窗体用户控件的母版公共财产,只投母版页对象:

CType(Me.Page.Master, master.master_public).YourProperty