Repeater, ListView, DataList, DataGrid, GridView … Что выбрать?

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

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

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

  • DataGrid – старая версия Gridview. Сетка представляет собой суперданные.

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

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

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

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

Теперь для некоторых конкретных рекомендаций (расширение на превосходный ответ WebDude выше) …

Соответствует ли ваш дизайн естественным таблицам или сетке данных? GridView .

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

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

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

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

Объявление следующего образца кода возможно для всех 3 (ListView, DataList, Repeater)

  <%# Eval("Name")%>   

в следующих списках Вы можете просмотреть доступные шаблоны и параметры для каждого из них и увидеть различия для себя

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

повторитель

  • AlternatingltemTemplate
  • FooterTemplate
  • HeaderTemplate
  • ItemTemplate
  • SeparatorTemplate

Просмотр кода (расширенный просмотр)

CompositeDataBoundControl :

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

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

Классы CompositeDataBoundControl (и связанные элементы управления)

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

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

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

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

Элемент управления DataList

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

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

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

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

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


Вышеописанные описания из MCTS Exam 70-515 Разработка веб-приложений с помощью Microsoft.NET Framework 4 .

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

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

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

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

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

  • Android - способ отображения текстового текста в TextView?
  • Пользовательские заголовки / хром в приложении WinForms
  • JavaFx tableview sort действительно медленный, как улучшить скорость сортировки, как в java swing
  • Как предотвратить перемещение окон?
  • GUI не работает после перезаписи в MVC
  • Возможно ли программирование графического интерфейса?
  • Сериализовать компоненты JavaFX
  • как выйти из блокировки XNextEvent xlib
  • Swing: кнопки переключения каналов вместе с группой кнопок вместе с соответствующими пунктами меню
  • Swing vs JavaFx для настольных приложений
  • process.WaitForExit () асинхронно
  • Давайте будем гением компьютера.