Что такое Container.DataItem?
Что такое Container.DataItem?
Ответ 1
Эта статья может помочь вам понять. Цитата:
Итак, что это за выражение? Значение <% #% > означает, что это Выражение DataBinding и Container.DataItem - это псевдоним для текущий элемент в источнике данных. Другими словами, если вы привязываетесь к коллекция объектов Container.DataItem - это текущая строка этого коллекция.
Эта запись в блоге дает информацию о том, когда использовать. Цитата:
Container.DataItem - это псевдоним выполнения для DataItem для этого конкретный элемент в связанном списке. Для сетки, которая отображает 10 строк данных, это одна строка из источника данных. Фактический тип DataItem определяется типом источника данных. Например, если datasource - это Dataview, тип DataItem - DataRowView. Если тип источника данных - это массив строк, тип DataItem - строка. Если источник данных представляет собой набор сильно типизированные объекты (например, объекты "Сотрудники" ), тип DataItem - это сотрудники.
В каждом из этих случаев требуется немного отличающаяся привязка данных выражение с дальнейшими различиями между VB и С#.
Ответ 2
Я столкнулся с этим вопросом, особенно в контексте попытки доступа к Container.DataItem
из кода. Container
существует в коде aspx
/ascx
, но не существует внутри кода. Посмотрев на сгенерированный код С#, я увидел, что это литая ссылка на BindingContainer
на конкретный управляющий элемент.
Эквивалентный код для кода Container.DataItem
таков:
var ddl = (DropDownList) source;
var dataItem = ((RepeaterItem) ddl.BindingContainer).DataItem;