2011-09-16 15 views
0

userControlページを追加します。 ModifyUC.ascxという名前のコントロールには、ラベルとテキストボックスがあります。 RangeCreate.aspxという名前のページでuserControlを使用すると、私はラベルとテキストボックスが見えないセットをしたい。 私は方法UserControlのコントロール属性にアクセスする方法

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

を使用すると、エラーがあなたがパブリックメソッドを公開する場合は、ModifyUC、またはより良いのパブリックプロパティとしてRangeCodeLableRangeCodeTextを公開する場合

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

あなたの文字列値のスペルを確認してください。特に、 "ラベル"ではなく "ラベル"を使用してもよろしいですか?それ以外の場合(およびコードを追加しない場合)は、FindControlがnullを返す理由を判断するのが難しくなります。 – rtalbot

答えて

1

これはクリーナーうまくいくということです両方を隠す

他の場所でModifyUCを使用する場合は、必要に応じてタイプキャストしてから、パブリックプロパティ/メソッドにアクセスしてください。

0

ここでできることの1つは、まずユーザーコントロールのコードビハインドページに2つのパブリックプロパティを作成することです。 RangeCodeLabelVisibleブールセイ

公共{を取得または設定します;} RangeCodeTextVisibleブール公共 {を取得または設定します;}

と、このUCのページロードイベントでちょうどこれらの値を確認し、ラベル作成し、テキストボックスが表示さ\不可視です。

これで、UCが使用されているページからこれらのプロパティを設定する必要があります。 これらのプロパティは公開されているため、アクセスすることができます。

ここに値を設定しないでください。正常に動作するはずです。

Rhanks、

ラーフル

関連する問題