2016-11-13 58 views
0

単純なFindControlが機能しない - キックバック:VB.net Findcontrolが動作しない

System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私はWebページにasp.netラベルを持っています。

ラベルコントロールは、他のコントロール(データグリッド、リピーターなど)内にありません。ボタンをクリックするとコードが呼び出されます。また、私は(とシナリオの半ダース程度)を試してみた

Dim lblMenuItemName as Label 
lblMenuItemName = CType(Page.FindControl("lblMenuItemName1"), Label) 
lblMenuItemName.Text = "Hello" 

lblMenuItemName = FindControl("lblMenuItemName1") 
lblMenuItemName = Me.FindControl("lblMenuItemName1") 

私はこれらの10を持っているので、私は、代わりにコントロールを直接参照するの、これをやっていますコントロールを直接参照する正常に動作します - ラベルと私はFYI

FindControll("lblMenuItemName" & x.ToString) 

を使用してループを通って、テキストを割り当てるするつもりです。

lblMenuItemName1.text = "Hello" 

どこが間違っていますか?

更新: 私の問題は、自分のコントロールがコンテンツコントロールにあるということです(以下のコメントのおかげで)。次に、コンテンツコントロール内のラベルを参照する方法を探します。ような何か:

試行錯誤の数時間と数十の後
Dim x As Content = Me.FindControl("Content3") 
Dim lblMenuItemName As Label = x.FindControl("lblMenuItemName1") 
lblMenuItemName.Text = "hello" 


<asp:Content ID="Content3" ContentPlaceHolderID="ContentBody" Runat="Server"> 
<asp:Label ID="lblMenuItemName1" runat="server" Text="Label"></asp:Label><br /><br /> 
<asp:Button ID="Button1" runat="server" Text="Button" /> 

+0

再帰的な検索を行うと、それはだ親を吐き出して試してみてくださいそれが何らかの光を放つかどうか確認してください。また、これらが動的に作成された場合は、ポストバックで利用できなくなります。 – MrGadget

+0

あなたのページを投稿できますか? – Codexer

+0

これは役に立ちますか? https://msdn.microsoft.com/en-us/library/y81z8326(v=vs.110).aspx –

答えて

1

、ここで私が探していたものです。

Dim lblMenuItemName As Label = TryCast(Master.FindControl("ContentBody").FindControl("lblMenuItemName1"), Label) 
+0

であると確信しています。 – GunWanderer

関連する問題