Вопрос

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

Это лучший способ сделать это?

Это было полезно?

Решение

Если объект Vendor может содержать только один объект Bucket, возможно, будет целесообразно связать его все в один повторитель верхнего уровня.Вы можете получить доступ к сегменту посредством простой привязки данных на верхнем уровне без переопределения ItemDataBound.

Поскольку вы, скорее всего, привязываете «Поставщика», у вас есть доступ к его членам в привязке данных, если вы хотите сделать это следующим образом:

<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>

Вы хотите использовать ItemDataBound, если вам нужно «что-то обрабатывать» во время каждой итерации привязки и вам нужен подробный доступ к каждому объекту Vendor для принятия решений.

Если объект Vendor может содержать несколько сегментов, то лучший способ получить к ним доступ — через ItemDataBound.На каждой итерации поставщика вы можете привязать новый вложенный повторитель для отображения данных сегмента или выполнить любые функции повторения/агрегирования, которые вам могут понадобиться.

В зависимости от того, как вы хотите, чтобы он вел себя на вашем клиенте, вы можете отображать только поставщиков.Когда пользователь нажимает на поставщика (или что-то еще), вы можете выполнить вызов AJAX на сервер, который получит данные сегмента и динамически отобразит их на вашей странице.Вы можете попробовать этот подход, если имеется большое количество поставщиков и их сегменты, которые визуализируются.Это повысит производительность базы данных и сократит время рендеринга страниц в отличие от создания всего этого на стороне сервера ASPX.(Но для этого потребуется много данных, вам следует сделать это из соображений удобства использования/клиента, прежде чем пытаться добиться повышения производительности.)

Другие советы

Именно так я обычно и делаю: привязываюсь к основному объекту и обрабатываю детали в ItemDataBound.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top