2016-09-14 6 views
0

Я работаю на странице в asp.net/vb.net, где большинство divs создаются динамически. Кроме того, я хотел бы, чтобы пользователь редактировал контент с динамически вставленными HtmlTextAreas, TextBoxes и т. Д.Найти динамически созданный элемент управления (TextBox) в div

Мне уже удалось создать все это. Я вставляю каждый div в панель и после того, как пользователь нажимает на кнопку редактирования, divs перезагружается и заполняется элементами (например, TextBoxes). Для сохранения я прокручиваю каждый div и пытаюсь найти элемент. Единственная проблема, с которой я сейчас сталкиваюсь, заключается в том, что каким-то образом я не могу найти динамически вставленные элементы.

For Each control As HtmlGenericControl In panel.Controls 
'do something like this: 
'Dim textBox As New TextBox = control.FindControl("myTextBox") 
Next 

Я уже пробовал несколько вариантов, но, к сожалению, без успеха (TextBox не всегда Nothing)

Я использую MasterPages, поэтому я попытался это:

Dim MainContent As ContentPlaceHolder = TryCast(Page.Master.FindControl("ContentPlaceHolder"), ContentPlaceHolder) 
Dim textBox As TextBox = DirectCast("myTextBox" & intCount.ToString(), TextBox) 

Есть ли способ сделать это?

Спасибо за ваше время и силы! :)

ответ

0

Вы должны быть осторожны с вашим литьем. Когда у вас есть коллекция объектов управления, вы не можете отбросить все их в текстовое поле (т. Е. Ярлык не может быть преобразован и будет генерировать исключение).

Вы можете найти элементы управления с помощью:

Dim textbox as TextBox = CType(control.FindControl("myTextBox"), TextBox) 

Чтобы перебрать все ваши текстовые поля можно использовать:

For Each textbox As TextBox In panel.Controls.OfType(of TextBox) 
    ... interact here 
Next 

В этой строке

Dim textBox As TextBox = DirectCast("myTextBox" & intCount.ToString(), TextBox) 

вы пытаетесь преобразовать string в TextBox, который не будет работать. Чтобы получить его, вам нужно использовать FindControl.

+0

Благодарим вас за ответ. После повторного поиска, я понял, что я не возвращал элементы правильно, и из-за этого элементы управления не будут загружаться. Теперь ваш код работает нормально. –

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