2017-08-18 11 views
0

私はここと他のサイトで多くの異なるソリューションを読んでいますが、これは私を逃れ続けます。vb.netコードを使用して特定のasp.netコントロールを参照する変数

私はasp.netのテキストボックスと画像ボタンをvb.netの背後にあるコードから参照しようとしています。

私はこのコードを試しましたが、変数tBoxには何もありません。

Dim callBtn As ImageButton = CType(sender, ImageButton) 
Dim tBox As TextBox 
Dim iButton As ImageButton 
Dim cNumber As Integer = Convert.ToInt32(callBtn.ID.Substring(11)) 
tBox = CType(Page.FindControl("TextBox" & cNumber), TextBox) 
'The line below is commented out because it did not work either but 
was the first one I tried 
'tBox = DirectCast(Page.FindControl("TextBox" & cNumber), TextBox) 
tBox.Text = "" <--- On this line tBox is nothing 
tBox.Visible = False 

私はtBox.Text行にブレークポイントを置き、tBoxは何もありません。

変数からテキストボックスを参照するにはどうすればよいですか?私も参照してボタンをイメージする必要がありますが、これを最初に動作させる必要があります。

ここに正確に答えている質問がある場合は、見つけられなかったことを私に指摘してください。

編集:更新 ここには、テキストボックスと画像ボタンを作成するコードがあります。

<asp:ImageButton ID="ImageButton1" runat="server" Visible="false" OnClick="removeFile" ImageUrl="~/Images/red-x-md20x20.png" ImageAlign="Top" ToolTip="Click To Remove File" />&ensp; 
<asp:TextBox ID="TextBox1" runat="server" Visible="false" Width="300px" /> 
+0

'cNumberは間違いなく1ですか?これらのコントロールは何らかの方法でネストされていますか?もしそうなら、[この質問](https://stackoverflow.com/questions/9830198/find-control-in-page)を見てください。 –

+0

いいえcNumberは1として定義されていません。1から20までの範囲です。 ImageButton#である呼び出しボタンによって定義されます。ここで、#は1〜20です。これらはネストされていません。 textboxとimagebuttonの各セットは、asp.netテーブルの1つの行にあります。 – mbcharney

答えて

1

私は正しい名前を探していませんでした。コンテンツページ上にあるので、私はマスターページを最初に参照しなければなりませんでした。

私は次のように使用:

Dim ctrlNameT As String = "ctl00$ContentPlaceHolderRight$TextBox" & cNumber 

これはトリックをしました!

関連する問題