Так много разных элементов управления на выбор! Каковы наилучшие методы определения того, какой элемент управления использовать для отображения данных в ASP.NET?
Repeater, ListView, DataList, DataGrid, GridView... Что выбрать?
Ответ 1
Это действительно о том, чего вы пытаетесь достичь
-
Gridview - ограниченный в дизайне, работает как таблица html. Больше встроенных функций, таких как редактирование/обновление, страница, сортировка. Много накладных расходов.
-
DataGrid - старая версия Gridview. Сетка представляет собой суперданные.
-
Datalist - более настраиваемая версия Gridview. Также есть некоторые накладные расходы. Более ручная работа, так как вы должны сами ее спроектировать.
-
ListView - новый Datalist:). Почти гибрид datalist и gridview, где вы можете использовать пейджинг и строить в Gridview, как функциональность, но иметь свободу дизайна. Один из новых элементов управления в этом семействе
-
Повторитель - Очень легкий вес. Нет встроенных функций, таких как заголовки, нижние колонтитулы. Имеет наименьшее издержки.
Ответ 2
Все остальные попадают в него: он зависит.
Теперь для некоторых конкретных рекомендаций (расширение на WebDude отличный ответ выше)...
Соответствует ли ваш дизайн естественному электронному или сетевому виду данных? GridView.
Вам нужно отобразить список или другой формат данных, возможно, с верхними и нижними колонтитулами и, возможно, с конкретными элементами управления и/или форматированием для каждой записи данных? (EG, настраиваемые ссылки, возможно, LinkButtons или определенные элементы управления редактированием?) Является ли этот экран не совсем естественным в виде таблицы или сетки? ListView
Если вы отвечаете всем критериям ListView, но вы, естественно, поместитесь в сетку, вы можете рассмотреть DataList.
Я использую Repeater, когда мне просто нужны некоторые базовые данные, которые повторяются с некоторыми пользовательскими битами проектирования, без заголовков, без нижних колонтитулов, с хорошими и чистыми.
Ответ 3
Просмотр разметки
Объявление следующего образца кода возможно для всех 3 (ListView, DataList, Repeater)
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
в следующих списках Вы можете просмотреть доступные шаблоны и параметры для каждого из них и увидеть различия для себя
ListView (обратите внимание на редактирование, группу, вставку, макет)
- AlternatingltemTemplate
- EditltemTemplate
- EmptyDataTemplate
- EmptyltemTemplate
- GroupSeparatorTemplate
- GroupTemplate
- lnsertltemTemplate
- ItemSeparatorTemplate
- ItemTemplate
- LayoutTemplate
- SelectedltemTemplate
DataList (обратите внимание на пары стиля)
- AlternatingltemStyle
- AlternatingltemTemplate
- EditltemStyle
- EditltemTemplate
- FooterStyle
- FooterTemplate
- HeaderStyle
- HeaderTemplate
- ItemStyle
- ItemTemplate
- SelectedltemStyle
- SelectedltemTemplate
- SeparatorStyle
- SeparatorTemplate
Repeater
- AlternatingltemTemplate
- FooterTemplate
- HeaderTemplate
- ItemTemplate
- SeparatorTemplate
Просмотр кода (расширенный просмотр)
CompositeDataBoundControl
найдите следующую иерархию классов (и связанные элементы управления).
эти элементы управления содержат другие элементы управления asp.net в своих шаблонах для отображения связанных данных пользователю
Некоторые описания для лучшего уточнения
Элемент управления ListView
Элемент управления ListView также использует шаблоны для отображения данных. Однако он поддерживает многие дополнительные шаблоны, которые позволяют использовать больше сценариев при работе с вашими данными. Эти шаблоны включают LayoutTemplate, GroupTemplate, ItemSeparatorTemplate.
Элемент управления ListView (в отличие от DataList и репитера) также неявно поддерживает возможность редактировать, вставлять и удалять данные с помощью элемента управления источником данных. Вы можете определить отдельные шаблоны для каждого из этих сценариев.
Элемент управления DataList
Элемент управления DataList работает , например, ретранслятор. Он повторяет данные для каждой строки в вашем наборе данных, и он отображает эти данные в соответствии с вашим определенным шаблоном. Однако он определяет данные, определенные в шаблоне в различных структурах HTML. Сюда входят опции для горизонтальной или вертикальной макет и он также позволяет устанавливать, как данные должны повторяться, как раскладка потока или таблицы.
Элемент управления DataList автоматически не использует элемент управления источником данных для редактирования данных. Вместо, он предоставляет командные события, в которых вы можете написать свой собственный код для этих сценариев. к включите эти события, вы добавите элемент управления Button в один из шаблонов и установите кнопки Свойство CommandName для редактирования, удаления, обновления или отмены ключевого слова. Соответствующий событие затем поднимается элементом управления DataList.
Управление повторителем
Элемент Repeater также использует шаблоны для определения пользовательской привязки. Однако он не отображает данные как отдельные записи. Вместо этого он повторяет строки данных, которые вы указываете в своем шаблоне. Эта позволяет создать одну строку данных и повторить ее на вашей странице.
Элемент Repeater - это только для чтения. То есть он поддерживает только ItemTemplate. Он не подразумевает поддержку редактирования, вставки и удаления. Вы должны рассмотреть один из другие элементы управления, если вам нужна эта функциональность, в противном случае вам нужно будет сам это сделать для контроль ретранслятора.
Вышеописанные описания от Экзамен MCTS Exam 70-515 Разработка веб-приложений с помощью Microsoft.NET Framework 4.
DataGrid даже не упоминается в этой книге и заменяется популярными GridViews и хорошо отвечает другим пользователям.
Ответ 4
Действительно! Я писал о различиях между инструментами данных ASP.NET 4.0. В принципе, gridviews являются самым мощным способом представления табличной информации, тогда как элементы управления ListView предназначены для более сложных отображений повторяющихся данных. Если бы я давал совет новичку ASP.NET, я бы сказал им изучить gridviews наизнанку и игнорировать другие элементы управления для начала.
Ответ 5
Все сводится к тому, как вы хотите разместить свои данные.
Если вам нужно контролировать макет (например, таблицы и CSS по сравнению с любыми), при использовании ретранслятора или списка. Между ними ListView дает вам больше событий и встроенных команд для редактирования, выбора, вставки. Кроме того, функции пейджинга и группировки. Repeater чрезвычайно прост, он повторяет макет с данными. Поскольку вы создаете компоновку вручную, Listview и Repeater требуют больше кода.
GridView - это обновленный DataGrid, поэтому вряд ли можно использовать DataGrid. GridView отлично работает при подключении к стандартным ресурсам ASP.NET, но ограничивает вас табличным расположением с большим количеством правил компоновки. GridView требует меньше кода, так как вы используете встроенный макет.