如何访问UserControl中的控件属性

时间:2011-09-16 02:25:09

标签: c# asp.net

我添加了一个userControl页面。名为ModifyUC.ascx,在控件中有一个标签和文本框。 当我在名为RangeCreate.aspx的页面中使用userControl时。我想要设置标签和文本框是不可见的。 当我使用方法时

protected ModifyUC createUC;
((ExtendedLabel)createUC.FindControl("RangeCodeLable")).Visible = false;//show error
((RadTextBox)createUC.FindControl("RangeCodeText")).Visible = false;

错误就是

(ExtendedLabel)createUC.FindControl("RangeCodeLable") is null. 
so ((ExtendedLabel)createUC.FindControl("RangeCodeLable")).Visible.
Object reference not set to an instance of an object.

2 个答案:

答案 0 :(得分:1)

如果您将RangeCodeLableRangeCodeText公开为ModifyUC的公共属性,或者更好,如果您公开一个公共方法来隐藏它们,那么这将更清晰。

然后,当您在其他地方使用ModifyUC时,只需对其进行类型转换(如果需要),然后访问公共属性/方法。

答案 1 :(得分:0)

您可以在这里做的一件事是首先在您的用户控件的代码页面后面创建2个公共属性。 说

public bool RangeCodeLabelVisible {get; set;} public bool RangeCodeTextVisible {get; set;}

并且在此UC的页面加载事件上只检查这些值并使标签和文本框可见\不可见。

现在您需要从使用UC的页面设置这些属性。 由于这些属性是公开的,因此您可以访问它。

此处未设置值,这应该可以正常工作。

Rhanks,

的Rahul