Ретранслятор, ListView, DataList, DataGrid, GridView ... что выбрать?

Так много различных элементов управления на выбор! Каковы рекомендации по определению того, какой элемент управления использовать для отображения данных в ASP.NET?

5 ответов


Это действительно о том, что вы пытаетесь достичь

  • Gridview-Limited в дизайне, работает как таблица html. Больше встроенных функций, таких как редактирование/обновление, страница, сортировка. Много накладных расходов.

  • DataGrid-старая версия Gridview. Gridview-это супер datagrid.

  • Datalist - более настраиваемая версия Gridview. Также имеет некоторые накладные расходы. Больше ручной работы, как вы его дизайн себе.

  • ListView-новый Datalist :). Почти гибрид datalist и gridview, где вы можете использовать подкачку и строить в GridView как функциональность, но иметь свободу дизайна. Один из новых элементов управления в этой семье

  • Repeater-очень легкий вес. Нет встроенных функций, таких как верхние и нижние колонтитулы. Имеет наименьшие накладные расходы.


все остальные попали в него: это зависит.

теперь для некоторых конкретных указаний (расширение на отличный ответ WebDude выше) ...

ваш дизайн вписывается в естественную электронную таблицу или сетку данных? GridView.

вам нужно отобразить список или другое форматированное представление данных, возможно, с верхними и нижними колонтитулами и, вероятно, с конкретными элементами управления и/или форматированием для каждой записи данных? (Например, индивидуальные ссылки, возможно LinkButtons, или конкретные элементы редактирования?) Отображается ли это специально не естественно вписывается в электронную таблицу или сетку? ListView с

Если вы соответствуете всем критериям ListView, но вы, естественно, вписываетесь в сетку, вы можете рассмотреть DataList.

Я иду за репитер когда мне просто нужны некоторые базовые данные, итерированные с некоторыми битами пользовательского дизайна, без заголовков, без нижних колонтитулов, красиво и чисто.


Посмотреть Разметки

объявление следующего примера кода возможно для всех 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 (обратите внимание на стиль Вид (расширенный вид)

CompositeDataBoundControl:

посмотрите следующую иерархию классов (и связанные элементы управления).

эти элементы управления размещают другие asp.net элементы управления в своих шаблонах для отображения связанных данных пользователю

The CompositeDataBoundControl classes(and related controls)

некоторые описания для лучшего пояснения

Элемент Управления ListView

элемент управления ListView также использует шаблоны для отображения данных. Тем не менее, он поддерживает многие дополнительные шаблоны, которые позволяют использовать дополнительные сценарии при работе с данными. Эти шаблоны включают LayoutTemplate, GroupTemplate, ItemSeparatorTemplate.

элемент управления ListView (в отличие от DataList и Repeater) также неявно поддерживает возможность редактирование, вставка и удаление данных с помощью элемента управления источником данных. Можно определить отдельные шаблоны для каждого из этих сценариев.

В Таблицы Контроль

элемент управления DataList работает как репитер управление. Он повторяет данные для каждой строки в наборе данных, и отображает эти данные в соответствии с шаблоном. , он выкладывает определенные данные в шаблоне в различные HTML структуры. Это включает варианты для горизонтального или вертикального макет и это также позволяет чтобы установить, как данные должны быть повторены, как поток или макет таблицы.

В Элемент управления DataList не использует автоматически элемент управления источником данных для редактирования данных. Вместо, это обеспечивает командные события в котором вы можете написать собственный код для этих сценариев. К включите эти события, добавьте элемент управления Button в один из шаблонов и установите Свойство CommandName ключевого слова edit, delete, update или cancel. Соответствующий затем событие вызывается элементом управления DataList.

Управление Повторителем

Повторитель control также использует шаблоны для определения пользовательской привязки. Однако данные не отображаются в виде отдельных записей. Вместо этого он повторяет строки данных, указанные в шаблоне. Этот позволяет создать одну строку данных и повторить ее на странице.

управление репитер только для чтения шаблон. То есть он поддерживает только ItemTemplate. Он неявно поддерживает редактирование, вставку и удаление. Вы должны рассмотреть один из другие элементы управления, если вам нужна эта функциональность, иначе вам придется этот код для элемент управления Repeater.


вышеуказанные описания от MCTS экзамен 70-515 Разработка веб-приложений с Microsoft.NET рамки 4 книги.

DataGrid даже не упоминается в этой книге и заменен популярными GridViews и ответил красиво другими пользователями


в самом деле! Я написал в блоге о различиях между ASP.NET 4.0 средства обработки данных. В принципе, gridviews-самый мощный способ представления табличной информации, тогда как элементы управления ListView предназначены для более сложных отображений повторяющихся данных. Если бы я давал советы ... ASP.NET новичок, я бы сказал им выучить gridviews наизнанку и игнорировать другие элементы управления для начала.


все сводится к тому, как вы хотите разместить свои данные.

Если вам нужно контролировать макет (например, таблицы против CSS против чего угодно), при использовании ретранслятора или ListView. Между ними ListView дает вам гораздо больше событий и встроенных команд для редактирования, выбора, вставки. Дополнительно функциональность подкачки и группировки. Репитер очень прост, он повторяет макет с данными. Поскольку вы строите макет вручную, Listview и Repeater требуют большего код.

GridView-это обновленный DataGrid, поэтому вряд ли есть причина использовать DataGrid. GridView работает очень хорошо при подключении к стандарту ASP.NET источники данных, но ограничивает вас табличным макетом с большим количеством правил макета. GridView требует меньше кода, так как вы используете встроенный макет.