Как добавить элемент RepeaterItem в asp: Repeater с помощью метода Controls ()

#asp.net #asprepeater

#asp.net #asprepeater

Вопрос:

Я объявил asp:Repeater на своей странице с ID=»AnswersRepeater». Я вызываю приведенный ниже сегмент кода, когда пользователь нажимает кнопку на странице, чтобы загрузить дополнительные данные из набора данных, обозначаемого как «ds». Мне нужно понять иерархию управления asp: repeater, чтобы я мог добавить обратно элементы, которые были у повторителя после повторной привязки к источнику данных, как показано ниже:

 Dim currentItems As New ArrayList(AnswersRepeater.Items)
AnswersRepeater.DataSource = ds
AnswersRepeater.DataBind()
For Each item As RepeaterItem In currentItems
   AnswersRepeater.Controls.Add(item)
Next
  

Проблема в том, что элементы RepeaterItems не добавляются в нужное место в иерархии элемента управления repeater. Мне нужно найти шаблон элемента и добавить к нему элементы в массиве currentItems. Любая помощь приветствуется.

Ответ №1:

Вы не должны напрямую редактировать элементы управления элемента управления Repeater, идея заключается в том, что вы привязываетесь к источнику данных, и он динамически создает для вас элементы управления на основе этого источника данных.

Вам было бы лучше добавить элементы, которые у вас уже есть, в ваш источник данных ds , а затем просто привязать один раз.

Комментарии:

1. Я не могу добавлять элементы в свой источник данных, потому что это обратная передача, и мне нужно добавить дополнительные данные до конца. Итак, я связываю новые данные, а затем снова добавляю предыдущие элементы управления. Знаете ли вы способ, которым я могу добавить дополнительные данные в repeater или даже другой элемент управления, такой как listview, для вывода моего списка элементов управления? Спасибо.

2. Как вы думаете, почему вы не можете добавить в источник данных? Вы могли бы использовать LINQ и Union старый набор данных с новым? Трудно помочь больше, не зная точно, что представляют ваши данные до и после обратной передачи.