首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让代码隐藏文件识别用户控件的类型?

如何让代码隐藏文件识别用户控件的类型?
EN

Stack Overflow用户
提问于 2011-01-19 07:02:19
回答 3查看 449关注 0票数 0

我在我的主页中有一个表示菜单的自定义控件,我们称它为CustomMenu。控制代码文件位于非特殊目录中。

我希望为使用该母版页的每个页面提供访问该控件的能力,并使用公共属性告诉该控件是否应呈现其自身。

我在控件上有一个公共属性来做这件事,我知道我可以通过引用Page.Master.FindControl(‘IdOfControlIwant’)来获得这个控件;

我遇到的问题是,我似乎不能让编译器识别控件类型,所以当我找到菜单控件时,我实际上不能使用它。让后台代码识别类型的唯一方法是在ascx文件中注册它,然后向页面添加至少一个控件,这是不可取的。

有什么想法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-19 08:12:29

你必须结合雅各布和dzendras发布的内容。将MasterType指令添加到内容页面的aspx文件:

代码语言:javascript
复制
<%@ MasterType VirtualPath="~/your.master"  %>

并在母版页中创建一个属性:

代码语言:javascript
复制
public CustomMenu MyCustomMenu {get{ return myCustomMenu;}}

其中myCustomeMenu是母版页中用户控件的ID。

现在,您应该能够从内容页面引用用户控件。因此,如果CustomMenu用户控件有一个名为SelectedItem的属性,您应该能够像这样访问它:

代码语言:javascript
复制
   public void Page_Load(object o, EventArgs e)
   {
       Master.MyCustomMenu.SelectedItem = 1;
   }
票数 1
EN

Stack Overflow用户

发布于 2011-01-19 07:09:17

在页面中使用MasterType指令:

代码语言:javascript
复制
<%@ MasterType VirtualPath="~/your.master"  %>

这将强类型您的母版页引用,因此您应该能够添加可由页面访问的属性。

票数 1
EN

Stack Overflow用户

发布于 2011-01-19 07:10:04

为您的MasterPage类创建一个属性:

代码语言:javascript
复制
bool IsCustomMenuVisible {set{ CustomMenu.Visible = value;}}

在任何你喜欢的地方使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4730059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档