Прежде чем я это сделаю, я подумал, что спрошу, лучший ли это способ. У каждого объекта «Поставщик» есть объект «Ведро». В моем репитере мне нужно отобразить некоторые свойства от поставщика и некоторые из Bucket, а также некоторые изображения, заполненные файловой системой, которые связаны с поставщиком. Я решил, что лучший способ сделать это - связать повторитель с объектом поставщика, а затем на ItemDataBound я заполню изображения и корзины на основе поставщика, который привязан к этому конкретному Items [e.Item.ItemIndex].
Это лучший способ сделать это?





Вот как я обычно это делаю, привязываю к основному объекту и обрабатываю детали в ItemDataBound.
Если объект Vendor может содержать только один объект Bucket, может быть целесообразно связать все это в одном репитере верхнего уровня. Вы можете получить доступ к Bucket через простую привязку данных на верхнем уровне без переопределения ItemDataBound.
Поскольку вы, скорее всего, привязываете «Поставщика», у вас есть доступ к его членам в привязке данных, если вы хотите сделать это следующим образом:
<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>
Вы хотите выполнить ItemDataBound, если вам нужно «что-то обрабатывать» во время каждой итерации привязки и вам нужен подробный доступ к каждому объекту Vendor для принятия решения.
Если объект Vendor может содержать несколько сегментов, то лучший способ получить к нему доступ - через ItemDataBound. На каждой итерации Vendor вы можете привязать новый вложенный повторитель для отображения данных корзины или выполнить любые функции повтора / агрегирования, которые могут вам понадобиться.
В зависимости от того, как вы хотите, чтобы он вел себя на вашем клиенте, вы могли отображать только поставщиков. Когда пользователь нажимает на Vendor (или что-то еще), вы можете выполнить AJAX-вызов сервера, который будет извлекать данные Bucket и динамически отображать их на вашей странице. Вы можете попробовать этот подход, если существует большое количество поставщиков с визуализируемыми корзинами. Это повысило бы производительность базы данных и время отрисовки страницы, в отличие от построения всего этого на стороне сервера ASPX. (Но это должно быть много данных, вы должны сделать это из соображений удобства использования / клиента, прежде чем пытаться заслужить прирост производительности.)
Каким будет лучший способ обработать вызов hte ajax, если вы собираетесь отображать только поставщиков и отображать корзины при нажатии на поставщика? панель обновления в шаблоне элемента и привязка вложенного повторителя к событию itemcommand?