Asp.Net UserControl - 访问父页面中的子控件

时间:2010-11-03 18:57:25

标签: asp.net user-controls

例如,我的 userControl CheckBox ,名为 IsGreatCoder ,而userControl嵌入主页(父页面)。

我通常通过我必须手动编写的公共属性公开来获得访问主页中的IsGreatCoder.Checked 值(比如说“IsAGreatCoder” “)。

如果UserControl在主页中包含为“ userControl1 ”,那么我会将其作为“userControl1.IsAGreatCoder”访问。

但是,我想知道是否有任何方式声明UserControl使得添加到它的所有UI控件都被声明为公共,这样我就可以访问主页面中的实际控件(父级)

基本上我希望能够做类似的事情 的 userControl1.IsGreatCoder.Checked 而不是必须实现一个属性。

我想这样做的原因是我希望能够访问更多的复选框属性,将每个属性作为公共属性实现会很痛苦。

1 个答案:

答案 0 :(得分:2)

按照设计,这是不可能的(将对象的私有名称自动设置为公共)。

为了使它更容易一些,您可以进入设计器视图(如果使用Web应用程序项目)并将每个控件声明编辑为公共,但每当您进行UI更改时它都会被覆盖(它会自动生成)毕竟,所以最好只是:

public bool IsAGreatCoder
{
    get { return IsGreatCoder.Checked; }
}

请注意,您需要将属性命名与控件名称区分开来。