#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
старый набор данных с новым? Трудно помочь больше, не зная точно, что представляют ваши данные до и после обратной передачи.