2010-11-18 4 views
2

問題があります。実行時に作成されるコントロールのアクセス値

ウィザードに含まれるパネルで実行時にTextBoxを作成します。

クライアントがこのテキストボックスに挿入する値にアクセスします。

私はそれを行うには、このコードを書いた:

TextBox _txt = Panel1.FindControl(txtArray[i].ID) as TextBox; 

しかし、私はこのエラーを取得する:

Object reference not set to an instance of an object.

にFindControlは、そのIDでこのコントロールを見つけることができませんでしたことを意味します。

これはランタイムでテキストボックスを作成するためのコードです:

for (int i = 1; i <= loop; i++) 
{ 
    txtArray[i] = new TextBox(); 
    txtArray[i].ID = "txt4Name" + i; 
} 

誰かがエラーを見つけるために私を助けることができますか?

+0

ここで、テキストボックスをパネルに追加しますか?どのような方法で作成コードですか?ページが読み込まれるたびにテキストボックスを再作成していますか? – Oded

+0

いいえ、私はクライアント ' – Haim

+0

OKからテキストボックスの数の応答としてtexboxを作成しました。だからあなたはそれらをパネルに追加していません。パネルの 'FindControl'メソッドはどのように追加されていないコントロールを見つけるはずですか? – Oded

答えて

1

TextBoxにアクセスするだけであれば、すでに配列に格納されています。 FindControlを使用する必要はありません。

TextBox _txt = txtArray[i]; 

しかし、ここではypuに別のエラーがある可能性があります。 PostBackにもパネルに追加されていますか?

関連する問題