При создании веб-сайта с использованием Asp.Net и использовании элементов управления, таких как ListView, следует ли использовать команду «Eval» или должна быть буквальная информация и данные, заполненные в событии привязки данных?Должны ли мы использовать событие Eval или Databind?
ответ
Зависит от того, хотите ли вы записать данные на событие обновления и в этом случае привязать данные. Если вы только хотите прочитать эти данные, вы можете использовать Bind() или Eval(), указав, что Eval() использует отражение, поэтому там будут рабочие издержки производительности.
Зависит от предметов, которые вы хотите связать. Они содержат всю необходимую информацию для отображения? Если да, используйте Eval. Если нет, и вам нужно найти дополнительную информацию в словаре или что-то в этом роде, тогда будет использовано событие DataBound.
Я выяснил, что обычно я использую событие DataBind для классов привязки, которые поступают из сопоставления Linq-To-SQL. Если я свободен в создании своего собственного класса контейнера, содержащего все свойства, необходимые для отображения, я использую только свойство Eval(). Я думаю, это зависит от того, насколько находчивым является поиск дополнительной информации. Пожалуйста, имейте в виду, что плохая практика использования LinqDataContext внутри события DataBound.
Можете ли вы опубликовать ссылку для своего заявления, что Eval использует отражение ? – citronas
В запущенном ASP.Net 3.5 он указывает, что EVAL неэффективен в столбцах шаблонов, поскольку он использует отражение. Это ярлык для Container.DataItem() –