2010-11-18 2 views
2

У меня есть проблема:значение Доступ управления, который создается во время выполнения

я создаю TextBox во время выполнения в панели, которая содержится в мастере.

Я хочу получить доступ к значению, которое клиент будет вставлять в это текстовое поле.

Я написал этот код, чтобы сделать это:

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

Но я получаю эту ошибку:

Object reference not set to an instance of an object.

Это означает, что FindControl не нашел этот элемент управления по его идентификатору.

Это код для создания текстового поля во время выполнения:

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

Может кто-то поможет мне найти ошибку?

+0

Где вы добавляете текстовые поля на панель? В каком методе находится код создания? Вы воссоздаете текстовые поля _every time_ страница загружается? – Oded

+0

нет, я создал texbox в качестве ответа на количество текстовых полей «от клиента» – Haim

+0

ОК. Поэтому вы не добавляете их в панель. Как метод панели FindControl должен найти элемент управления, который не был добавлен к нему? – Oded

ответ

1

Если вам просто нужно получить доступ к TextBox, у вас уже есть его в вашем массиве. Нет необходимости использовать FindControl.

TextBox _txt = txtArray[i]; 

Однако, я подозреваю, что у ypu может быть и другая ошибка. Вы уверены, что он добавлен в панель, также на PostBack?

Смежные вопросы