Так много разных элементов управления на выбор! Каковы лучшие практики для определения того, какой элемент управления использовать для отображения данных в ASP.NET?
asp.net
user-interface
mattruma
источник
источник
Ответы:
Это действительно о том, чего вы пытаетесь достичь
Gridview - ограниченный дизайн, работает как таблица html. Больше встроенных функций, таких как редактирование / обновление, страница, сортировка. Много накладных расходов.
DataGrid - старая версия Gridview. Gridview - это супер-сетка данных.
Datalist - более настраиваемая версия Gridview. Также есть некоторые накладные расходы. Больше ручной работы, так как вы должны спроектировать это самостоятельно.
ListView - новый даталист :). Почти гибрид datalist и gridview, где вы можете использовать разбиение по страницам и строить в Gridview, как функциональные возможности, но при этом сохраняете свободу дизайна. Один из новых элементов управления в этом семействе
Повторитель - очень легкий. Нет встроенных функций, таких как верхние и нижние колонтитулы. Имеет наименьшие накладные расходы.
источник
Все остальные попали в него: это зависит.
Теперь для некоторых конкретных рекомендаций (расширяя отличный ответ WebDude выше) ...
Подходит ли ваш дизайн к естественному просмотру данных в виде электронной таблицы или сетки? Вид сетки .
Вам нужно отображать список или другое форматированное представление данных, возможно, с верхними и нижними колонтитулами и, возможно, с определенными элементами управления и / или форматированием для каждой записи данных? (EG, индивидуальные ссылки, возможно , LinkButtons или конкретные элементы редактирования?) Имеет ли этот дисплей специально не вписывается в электронной таблице или сетки зрение? Посмотреть список
Если вы соответствуете всем критериям ListView, но, естественно, вписываетесь в сетку, вы можете рассмотреть DataList .
Я выбираю Repeater, когда мне просто нужны некоторые базовые данные, повторяемые с помощью некоторых элементов индивидуального дизайна, без заголовков и нижних колонтитулов, красиво и чисто.
источник
Просмотр разметки
Объявление следующего образца кода возможно для всех 3 (ListView, DataList, Repeater)
в следующих списках Вы можете увидеть доступные шаблоны и параметры для каждого из них, а также сами увидеть различия
ListView (обратите внимание на редактирование, группу, вставку, макет)
DataList (обратите внимание на пары стилей)
Повторитель
Просмотр кода (расширенный вид)
CompositeDataBoundControl :
посмотрите следующую иерархию классов (и связанные элементы управления).
эти элементы управления содержат другие элементы управления asp.net в своих шаблонах для отображения связанных данных для пользователя
Некоторые описания для лучшего понимания
Элемент управления ListView
Элемент управления ListView также использует шаблоны для отображения данных. Однако он поддерживает множество дополнительных шаблонов, которые позволяют создавать больше сценариев при работе с вашими данными. Эти шаблоны включают LayoutTemplate, GroupTemplate, ItemSeparatorTemplate .
Элемент управления ListView (в отличие от DataList и Repeater ) также неявно поддерживает возможность редактирования, вставки и удаления данных с помощью элемента управления источником данных. Вы можете определить индивидуальные шаблоны для каждого из этих сценариев.
Элемент управления DataList
Элемент управления DataList работает как элемент управления Repeater . Он повторяет данные для каждой строки в вашем наборе данных и отображает эти данные в соответствии с вашим заданным шаблоном. Тем не менее , он размещает данные, определенные в шаблоне, в различных структурах HTML. Это включает в себя варианты горизонтального или вертикального макета, а также позволяет вам установить, как данные должны повторяться, как поток или макет таблицы.
Элемент управления DataList не использует автоматически элемент управления источником данных для редактирования данных. Вместо этого он предоставляет командные события, в которых вы можете написать свой собственный код для этих сценариев. Чтобы включить эти события, вы добавляете элемент управления Button в один из шаблонов и устанавливаете для свойства CommandName кнопки ключевое слово edit, delete, update или cancel. Соответствующее событие затем вызывается элементом управления DataList.
Управление ретранслятором
Элемент управления Repeater также использует шаблоны для определения настраиваемой привязки. Однако он не отображает данные как отдельные записи. Вместо этого он повторяет строки данных, как вы указываете в шаблоне. Это позволяет вам создать одну строку данных и повторить ее на всей странице.
Элемент управления Repeater предназначен только для чтения . То есть он поддерживает только ItemTemplate. Он неявно не поддерживает редактирование, вставку и удаление. Вам следует рассмотреть один из других элементов управления, если вам нужна эта функция, иначе вам придется самостоятельно кодировать его для элемента управления Repeater.
Приведенные выше описания взяты из книги MCTS Exam 70-515 «Разработка веб-приложений с использованием Microsoft.NET Framework 4» .
DataGrid даже не упоминается в этой книге и заменен популярными GridView, и на него хорошо отвечают другие пользователи.
источник
На самом деле! Я писал в блоге о различиях между инструментами данных ASP.NET 4.0 . По сути, gridviews - это наиболее эффективный способ представления табличной информации, тогда как элементы управления ListView предназначены для более сложных отображений повторяющихся данных. Если бы я давал совет новичку в ASP.NET, я бы посоветовал им выучить gridviews наизнанку и с самого начала игнорировать другие элементы управления.
источник
Все сводится к тому, как вы хотите разместить свои данные.
Если вам нужно контролировать макет (например, таблицы, CSS или что-то еще), при использовании Repeater или ListView. Между ними ListView дает вам гораздо больше событий и встроенных команд для редактирования, выбора и вставки. Дополнительные функции разбиения по страницам и группировки. Repeater очень прост, он повторяет макет с данными. Поскольку вы создаете макет вручную, Listview и Repeater требуют больше кода.
GridView - это обновленный DataGrid, поэтому нет причин использовать DataGrid. GridView работает очень хорошо при подключении к стандартным источникам данных ASP.NET, но ограничивает вас табличным макетом с множеством правил макета. GridView требует меньше кода, поскольку вы используете встроенный макет.
источник