Стільки різних елементів управління на вибір! Які найкращі практики визначити, який елемент управління використовувати для відображення даних у ASP.NET?
Стільки різних елементів управління на вибір! Які найкращі практики визначити, який елемент управління використовувати для відображення даних у ASP.NET?
Відповіді:
Це дійсно про те, чого ви намагаєтесь досягти
Gridview - обмежений у дизайні, працює як HTML-таблиця. Більше про такі вбудовані функції, як редагування / оновлення, сторінка, сортування. Багато накладних витрат.
DataGrid - стара версія Gridview. Перегляд сітки - це суперсетка даних.
Datalist - більш настроювана версія Gridview. Також має деякі накладні витрати. Більше ручної роботи, як вам доведеться її самостійно спроектувати.
ListView - новий Datalist :). Майже гібрид даталістичного та сіткового перегляду, де ви можете використовувати підкачку та створювати Gridview як функціональні можливості, але маєте свободу дизайну. Один з нових елементів управління в цій родині
Повторювач - Дуже легкий вага. Немає таких функцій, як Headers, Footers. Має найменші накладні витрати.
Вдарили всі інші: це залежить.
Тепер для конкретних вказівок (розширення на відмінну відповідь WebDude вище) ...
Чи вписується ваш дизайн у вигляд даних із природними таблицями чи сіткою? GridView .
Чи потрібно відображати список чи інший формат перегляду даних, можливо, із заголовками та колонтитулами та, ймовірно, із специфічними елементами управління та / або форматуванням для кожного запису даних? (EG, індивідуальні посилання, можливо , LinkButtons або конкретні елементи редагування?) Чи має цей дисплей спеціально НЕ вписується в електронній таблиці або сітки зір? ListView
Якщо ви відповідають усім критеріям ListView, але ви, природно, помістилися в сітці, ви можете розглянути DataList .
Я переходжу на Repeater, коли мені просто потрібні деякі основні дані, повторені деякими бітами на замовлення, без заголовків, без колонтитулів, приємних та чистих.
Декларація наступного зразкового коду можлива для всіх 3 (ListView, DataList, Repeater)
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
у наступних списках Ви можете побачити доступні шаблони та параметри для кожного з них та побачити відмінності для себе
ListView (зверніть увагу на редагування, групу, вставку, макет)
DataList (зверніть увагу на пари стилів)
Повторювач
CompositeDataBoundControl :
дивіться наступні ієрархії класів (та пов'язані з ними елементи управління).
ці елементи керують іншими елементами управління asp.net у своїх шаблонах для відображення користувачем даних зв'язаних даних
Управління ListView
Контроль ListView також використовує шаблони для відображення даних. Однак він підтримує безліч додаткових шаблонів, що дозволяють отримати більше сценаріїв під час роботи з вашими даними. Ці шаблони включають шаблон LayoutTemplate, GroupTemplate, ItemSeparatorTemplate .
Контроль ListView ( на відміну від DataList та Repeater ) також неявно підтримує можливість редагування, вставки та видалення даних за допомогою керування джерелом даних. Ви можете визначити окремі шаблони для кожного з цих сценаріїв.
Управління DataList
Елемент керування DataList працює як контроль повторювача . Він повторює дані для кожного рядка у вашому наборі даних і відображає ці дані відповідно до визначеного шаблону. Однак він викладає дані, визначені в шаблоні, в межах різних структур HTML. Сюди входять опції для горизонтального чи вертикального макета, а також ви можете встановити, як слід повторювати дані, як макет потоку чи таблиці.
Елемент керування DataList автоматично не використовує елемент керування джерелом даних для редагування даних. Натомість він пропонує командні події, в яких ви можете написати власний код для цих сценаріїв. Щоб увімкнути ці події, ви додасте управління кнопок до одного із шаблонів і встановіть властивість кнопки CommandName на ключове слово редагування, видалення, оновлення чи скасування. Потім відповідна подія піднімається контролем DataList.
Повторне управління
Елемент керування Repeater також використовує шаблони для визначення користувацьких прив'язок. Однак дані не відображаються як окремі записи. Натомість він повторює рядки даних, як ви вказуєте у своєму шаблоні. Це дозволяє створити один рядок даних і повторити їх на всій сторінці.
Елемент керування повтором - це шаблон, доступний лише для читання . Тобто він підтримує лише ItemTemplate. Він не підтримує неявно редагування, вставлення та видалення. Якщо вам потрібна ця функція, слід розглянути один з інших елементів керування, інакше вам доведеться самостійно кодувати це для керування повтором.
Вищеописані описи - з розробки веб-додатків MCTS Exam 70-515 за допомогою книги Microsoft.NET Framework 4 .
DataGrid навіть не згадується в цій книзі, його замінюють популярні GridViews та чудово відповідають інші користувачі
Справді! Я обговорював відмінності між інструментами даних ASP.NET 4.0 . В основному, перегляд сітки - це найпотужніший спосіб подання табличної інформації, тоді як елементи ListView призначені для більш складних відображень повторних даних. Якщо я давав пораду новачкам ASP.NET, я б сказав їм вивчити перегляди сітки зсередини і проігнорувати інші елементи управління для початку.
Все зводиться до того, як ви хочете розмістити свої дані.
Якщо вам потрібно контролювати макет (наприклад, таблиці проти CSS проти будь-якого), використовуйте повторювач або ListView. Між ними, ListView дає набагато більше подій та вбудованих команд для редагування, вибору, вставки. Додатково функціонування підкачки та групування. Повторювач надзвичайно простий, він повторює макет із даними. Оскільки ви будуєте макет вручну, Listview і Repeater потребують більше коду.
GridView - це оновлений DataGrid, тому навряд чи є причина використовувати DataGrid. GridView дуже добре працює при підключенні до стандартних джерел даних ASP.NET, але обмежує вас в табличному макеті з великою кількістю правил компонування. GridView вимагає менше коду, оскільки ви використовуєте вбудований макет.