Создание выпадающего списка автозаполнения с помощью элемента Datalist


Оглавление (нажмите, чтобы открыть):

как создать автозаполнение с помощью datalist

Я пытаюсь создать автозаполнение с datalist html, это мой код:

список показывает, что проблема в том, что я выбираю элемент из моего datalist на входе, показывая значение, не имя. и как я могу получить это значение (id).. пожалуйста, любое предложение.

«. не имя. и как я могу получить это значение (id)».

Я понятия не имею, что вы имеете в виду. или как это связано с автозаполнением.

Следующая демонстрация запускает функцию обратного вызова getData() когда событие change запускается на #options . Консоль (не сигнализация, потому что она раздражает) будет записывать два элемента:

  1. Значение текстового поля

Запустите функцию обратного вызова getID() при click :button Консоль будет записываться в журнал:

  1. ID текстового поля
  2. Идентификатор списка данных

Что касается поведения автозаполнения, вы просто добавляете атрибут autocomplete в тег текстового поля или нет, потому что он по умолчанию. Чтобы проверить это, просто введите букву.

.autocomplete() не является встроенным методом JavaScript или jQuery. Вам нужно загрузить пользовательский интерфейс jQuery, как комментировал г-н Нойон, или плагин.

BTW, никогда не используйте обработчик события атрибута onclick при загрузке jQuery. Это как толкать автомобиль, а не водить его.

Новые элементы форм HTML5

На данном этапе мы узнали, как усовершенствовать формы с помощью новых возможностей HTML5 — проверки и дополнительных типов данных полей ввода. Это наиболее важные новые возможности с наивысшим уровнем поддержки в браузерах, но HTML5 не останавливается на этом.

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

Таким образом, в последующем материале рассматриваются возможности с самым низким уровнем поддержки изо всех возможностей HTML-форм. Желательно разобраться, как они работают, но при этом разумно воздержаться от их использования, пока вы не будете уверены в том, что браузеры их поддерживают.

Подсказки ввода

Элемент предоставляет способ присоединить выпадающий список возможных вариантов ввода к обыкновенному текстовому полю. Заполняющим форму пользователям он дает возможность либо выбрать вариант ввода из списка значений, либо ввести требуемое значение вручную:

Чтобы использовать элемент datalist, сначала нужно создать обычное текстовое поле. Допустим, мы создали обычный элемент :

Чтобы добавить к этому полю выпадающий список возможных значений, для него нужно создать элемент . Технически этот элемент можно разместить в любом месте разметки, т.к. он не отображается браузером, а просто предоставляет данные для использования в текстовом поле ввода. Но логично поместить этот элемент либо непосредственно перед тем элементом , для которого он предоставляет свои данные, либо сразу же после него. Далее показан пример кода для создания списка :

Как и традиционное поле
Или введите вручную:

Браузеры, которые распознают элемент , будут отображать только одно текстовое поле и выпадающий список предлагаемых вариантов ввода. Но для других браузеров этот дополнительный код облекает предлагаемые варианты ввода в традиционный список , предоставляя пользователю возможность ввести собственное значение или же выбрать готовое значение из списка:

Но этот подход не работает незаметно. При получении данных формы на сервере необходимо проверить на наличие данных из списка (favoriteFruite) и из списка (dl_fruits). За исключением этого незначительного недостатка, это надежный способ предоставить новое удобство всем пользователям без исключения.

Индикатор выполнения

Новые графические элементы

и внешне похожи друг на друга, но имеют разные назначения. Элемент

отображает ход выполнения задания посредством зеленой пульсирующей полоски на сером фоне. Визуально элемент

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

Элемент указывает значение в диапазоне известных значений. Внешне похож на элемент

, но зеленая полоска имеет другой оттенок и не пульсирует. В зависимости от браузера цвет индикаторной полоски элемента может меняться при отображении значения, определенного как «слишком низкое» или «слишком высокое». Например, в браузере Chrome при отображении последнего значения цвет индикатора меняется с зеленого на желтый. Но самая важная разница между элементами

и заключается в их семантическом значении.

Для помещения в форму элементов и

нет надобности. Более того, они даже не являются настоящими элементами управления формы, т.к. не собирают информацию от посетителя веб-страницы. Но официальный стандарт HTML5 включает их потому, что в некоторых отношениях они чувствуются как элементы формы, возможно, из-за графического отображения данных.

В настоящее время элементы

и поддерживаются браузерам Chrome 9, Opera 11, Firefox 5 и Safari 5.1 (а также их более поздними версиями).

и не составляет никакого труда. Сначала рассмотрим элемент

. Он использует атрибут value, который обозначает ход выполнения задания в виде дробной величины от 0 до 1. Графически это отображается соответствующей шириной полоски индикатора. Например, чтобы показать, что задание выполнено на 25%, атрибуту value присваивается значение 0,25:

Альтернативно, можно использовать атрибут max, чтобы установить максимальное значение и изменить масштаб индикатора. Например, при значении max, равном 200, значение value должно быть между 0 и 200. Если сделать значение value равным 50, то получим те же самые 25% заполнения индикатора, как и в предыдущем примере:

Масштаб используется просто в целях удобства, т.к. цифровое значение в индикаторе не отображается. Браузеры, которые не поддерживают элемент

, попросту игнорируют его. Эту проблему можно решить, вставив в элемент

резервное содержимое следующим образом:

При этом следует помнить, что это резервное содержимое не будет отображаться в браузерах, которые поддерживают этот элемент.

Для индикатора выполнения есть еще одна опция в виде неопределенного состояния индикатора, которое указывает, что задание выполняется, но точное время его завершения неизвестно. (Индикатор в неопределенном состоянии можно рассматривать как вычурное сообщение «Задание в процессе выполнения».) Визуально индикатор в неопределенном состоянии выглядит как серое поле, вдоль которого периодически слева направо пробегает зеленая размытая полоска. Чтобы создать этот индикатор, просто не употребляйте атрибут value:

Элемент имеет подобную модель, но отображает любой вид измерений. Иногда его еще называют шкалой. Часто значение атрибута value этого элемента отображает какую-то действительную величину, например денежную сумму на счету, количество дней, вес в килограммах и т.п. Отображение этой информации управляется установкой значений атрибутов min и max:

Как и для элемента

, содержимое внутри элемента отображается только в браузерах, которые не поддерживают его. Но иногда значение элемента нужно вывести в числовом формате. В таком случае его нужно задать на странице обычной разметкой; при этом резервное значение внутри элемента не требуется. Этот подход демонстрируется в следующем примере. Вся информация выводится на страницу обычной разметкой, а элемент додается в качестве необязательного визуального ориентира:

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

Например, значение value, превышающее значение high, но меньше значения max, будет выше какого-то требуемого значения, но все еще в пределах допустимого максимального значения. Подобным образом значение value ниже значения low, но выше значения min, не удовлетворяет какому-либо требованию низкого значения, но будет все еще в пределах допустимого минимального значения:

Браузеры могут использовать или не использовать информацию атрибутов low и high. Например, браузер Chrome отображает слишком высокие значения (как в предыдущем примере) желтым цветом, но значения ниже low показывает как обычные. Наконец, атрибут optimum служит для указания определенного оптимального значения, но использование этого атрибута не влияет на отображение этого значения в современных браузерах.

В общем, элементы

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

Элементы и для создания кнопок команд и меню

Эти две возможности можно считать самыми замечательными, но пока не реализованными. Идея заключается в том, чтобы использовать один элемент для представления действия, которое пользователь может активировать (т.е., ), a другой элемент для группирования нескольких таких элементов (т.е. ).

В зависимости от конструкции и оформления элемент может принимать какие угодно формы, от панели инструментов, закрепленной на стороне окна браузера, до всплывающего меню, открывающегося при щелчке мышью где-либо на странице. Но в настоящее время ни один из браузеров не поддерживает эти элементы, поэтому нужно подождать, чтобы узнать, действительно ли они такие замечательные.

Автозаполнение выпадающего списка в Excel 2010-2013

Задача: Создать в ячейке Excel выпадающий список, в который будут автоматически добавляться значения из заданного динамического диапазона. Если в этот диапазон будут внесены изменения, то сразу же изменится и набор предлагаемых значений. При этом никакие формулы и настройки корректировать не нужно.

Вот как это автозаполнение может выглядеть на простом примере:

Способ 1. Укажите заведомо большой источник данных.

Самая простая и несложная хитрость. Создаем выпадающий список, действуя по обычному алгоритму действий: в меню выберите на вкладке Данные – Проверка данных (Data – Validation). Из перечня Тип данных (Allow) выберите вариант Список (List). Поставьте курсор в поле Источник (Source). Зарезервируем под источник выпадающего списка набор данных с большим запасом: например, до 55-й строки, хотя занято у нас только 7. При этом обязательно не забудьте поставить галочку в пункте «Игнорировать пустые ячейки». Тогда ваш «резерв» из пустых значений не будет вам мешать.


Это самый простой способ, но не слишком удобный. Ведь зарезервированное место может и закончиться.

Конечно, в качестве источника можно указать и весь столбец:

Но обработка такого большого диапазона может несколько замедлить вычисления.

Способ 2. Используем именованный диапазон.

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

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

Выделим имеющийся в нашем распоряжении перечень имен A2:A10. Затем присвоим ему название, заполнив поле «Имя», находящееся левее строки формул. После этого создадим с ячейке С2 выпадающий список. В качестве источника данных укажем выражение

Недостатком этого способа является то, что новые значения нельзя просто дописывать в конец используемого перечня — они останутся за пределами именованного диапазона. Их придется вставлять внутрь его, использовав вставку пустой строки.

Перечень после этого можно отсортировать, чтобы удобно было ими пользоваться.

Главный недостаток здесь заключается в том, что используемый нами диапазон — статический. Автоматически его размеры измениться не могут. Согласитесь, не слишком удобный и технологичный способ автоматического увеличения выпадающего списка. Слишком много ручных операций.

А теперь давайте пойдем дальше и посмотрим, как можно работать с динамическим диапазоном, который автоматически подстраивается под вводимые данные.

Способ 3. Использование «умной» таблицы.

Начиная с 2007 года таблица для Excel — это не просто набор строк и столбцов. Если вы просто расположите данные с привычном для нас табличном виде, то он не будет считать это таблицей. Существует специальное форматирование (меню Главная — Форматировать как таблицу), после чего этот диапазон начинает вести себя как единое целое, приобретая целый ряд интересных свойств. В частности, он начинает сам отслеживать свои размеры, динамически изменяясь при добавлении — удалении данных.

Любой набор ячеек в Excel может быть таким образом преобразован. Например, A1:A8. Выделите их при помощи мыши. Затем преобразуйте в таблицу при помощи меню Главная — Форматировать как таблицу (Home — Format as Table). Укажите, что в первой строке у вас расположено название столбца. Это будет «шапка» вашей таблицы. Внешний вид ее можете выбрать любой: это не более чем внешнее оформление и ни на что больше не влияет.

Как уже было сказано выше, «умная» таблица хороша для нас тем, что динамически меняет свои размеры при добавлении в нее данных. Если в строку ниже нее вписать какие-то данные, то она тут же присоединит к себе эту строку. Таким образом, новые данные можно просто дописывать. К примеру, впишите в A9 «кокос», и таблица тут же расширится до 9 строк.

Следовательно, автоматическое обновление перечня используемых данных можно организовать, если использовать данные какого-либо столбца «умной» таблицы.

Осталось только обозначить ее как источник данных. Проблема заключается в том, что Excel в раскрывающемся списке в качестве источника данных не понимает выражение вида

и не считает его формулой. Хотя в ячейках на листе вашей рабочей книги это вполне будет работать. Эта конструкция обозначает ссылку на первый столбец. Но в поле «Источник» она почему-то не работает.

Чтобы использовать столбец в развертывающемся списке, нам придется пойти на небольшую хитрость и воспользоваться функцией ДВССЫЛ (INDIRECT в английском варианте). Эта функция преобразует текстовую переменную в обычную ссылку Excel.

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

Таблица5 — это имя, автоматически присвоенное при создании таблицы. У вас оно может быть другим. На появившейся после создания «умной» таблицы вкладке меню Конструктор (Design) можно изменить это стандартное имя на свое (но без пробелов!). По этому имени мы сможем потом адресоваться к нашей таблице на любом листе этой книги.

«Продукт» — название нашего первого и единственного столбца, присвоено по его заголовку.

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

Теперь если в A9 вы допишете еще один продукт (например, кокос), то он тут же автоматически появится и в раскрывающемся списке. Аналогично будет, если мы что-то удалим. Задача автоматического увеличения выпадающего списка решена.

А вот еще полезная для вас информация:

Создаем выпадающий список в Exel при помощи формул

Задача: Создать выпадающий список в Excel таким образом, чтобы в него автоматически попадали все новые значения. Сделаем это при помощи формул, чтобы этот способ можно было использовать не только в […]

Автозаполнение выпадающего списка в Excel 2010-2013

Задача: Создать в ячейке Excel выпадающий список, в который будут автоматически добавляться значения из заданного динамического диапазона. Если в этот диапазон будут внесены изменения, то сразу же изменится и набор […]

Как сделать выпадающий список в Excel?

Одной из наиболее полезных функций при вводе данных в Excel является возможность создания выпадающего списка. Он позволяет выбирать значение из предварительно определенного перечня. Раскрывающиеся списки позволяют пользователям вводить только те […]

Как создать свой список автозаполнения в Excel?

При работе в электронных таблицах Excel бывает нужно постоянно вводить одни и те же значения (из списка). Стандартными списками являются последовательности дней недели или месяцев, но порой хочется создать свой список автозаполнения. Например, список класса, возраст учеников, размеры одежды или любых других данных, к которым постоянно приходится обращаться. Чтобы не вводить каждый раз эти значения вручную, можно создать свой список автозаполнения, а затем использовать его — в Excel есть такая возможность.

Для создания своего списка автозаполнения выполните следующие действия.

Если используется Excel версии 2003, то нужно выбрать меню СервисПараметрыСпискиНовый список — вводим элементы списка через клавишу Enter — выбираем ДобавитьОК.

Если используется Excel версии 2007 (2010), то нужно выбрать ФайлПараметрыДополнительно — в Общие Изменить спискиНовый список — вводим элементы списка через клавишу Enter — выбираем ДобавитьОК.

После создания своего списка автозаполнения достаточно в нужную ячейку таблицы ввести первое значение из списка (в примере Иванов Антон) и протянуть маркер заполнения ячейки в нужном направлении. Смотрите подробнее Как пользоваться списками автозаполнения и вводить стандартные последовательности.

Мастер Йода рекомендует:  Работаем с SQLiteite

Что делать, если нет маркера автозаполнения?

Если маркер (курсор) заполнения отсутствует, то нужно настроить Excel так, чтобы маркер отображался.

Для этого, если Вы используете версию 2003, выбираем СервисПараметры — на вкладке Параметры устанавливаем галочку Перетаскивание ячеек.

Если Вы используете версию 2007 или 2010, Файл (кнопка Офис) — ПараметрыДополнительноРазрешить маркеры заполнения и перетаскивания ячеекОК.

Ввод данных экспресс-методом

Если таблица содержит в нескольких ячейках одинаковые данные, для быстрого ввода этих данных можно использовать экспресс-метод.

Используя клавишу Ctrl, выделим ячейки, в которые нужно ввести одинаковые значения.

В строку формул введем нужное значение и нажмем на клавиатуре сочетание клавиш Ctrl+Enter. Все выделенные ячейки автоматически заполнятся нужными данными.

Кратко об авторе:

Шамарина Татьяна Николаевна — учитель физики, информатики и ИКТ, МКОУ «СОШ», с. Саволенка Юхновского района Калужской области. Автор и преподаватель дистанционных курсов по основам компьютерной грамотности, офисным программам. Автор статей, видеоуроков и разработок.

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

Есть мнение?
Оставьте комментарий

Понравился материал?
Хотите прочитать позже?
Сохраните на своей стене и
поделитесь с друзьями

Вы можете разместить на своём сайте анонс статьи со ссылкой на её полный текст

Как обработать событие выбора значения мышью в теге ?

В форме есть поле «Город». Для его указания связал «input» с «datalist». Вот код:

При изменении поля «Город» должна выполняться моя функция recalc. С помощью обработчика события «keyup» для это реализовал таким образом:

Javascript
Javascript
12.08.2020, 16:51

Как писать функцию, реагирующую на событие изменения выбора в теге select?
Как писать функцию, реагирующую на событие изменения выбора в теге select?

Как обработать событие click и событие нажития стрелки?
Допустим есть кнопка влево-вправо для горизонтального листания товаров. Как нужно кроссбраузерно.


Привет! Подскажите, как запустить событие при изменение текста в теге


TextBox с автозаполнением. Как перехватить событие выбора значения из списка?
Есть текстбокс с автозаполнением. Надо при выборе значения из списка произвести некие действия и.

Помогите обработать клик в DataList?
В гриде я делал так: Private Sub dgHazmBitzua_ItemDataBound(ByVal sender As System.Object, ByVal.

12.08.2020, 17:17 2
Javascript
12.08.2020, 19:41 [ТС] 3
Javascript
12.08.2020, 21:59 4
12.08.2020, 21:59
14.08.2020, 19:02 [ТС] 5

Да дело не в функции, а в том, что она не срабатывает, когда по варианту щелкаешь мышью. Впрочем, вот весь код:

Какие еще будут варианты решения задачи?

Добавлено через 5 часов 22 минуты
Пока никто решения не предложил, поделюсь своим вариантом. Правда, сомневаюсь в его оптимальности. Мое решение заключается в том, что, как только фокус попадает на текстовое поле ввода города, включается таймер, который через каждые 100ms вызывает функцию recalc(). Вот такой код целой HTML-странички получился:

Списки автозаполнения

Если вы еще не знаете про такой прием в Excel, как автозаполнение ячеек путем протягивания мышью крестика — то самое время это про него узнать. Эта возможность очень полезная. Что дает автозаполнение: допустим вы хотите заполнить строку или столбец днями недели(Понедельник, Вторник и т.д.). Человек, который про автозаполнение не знает последовательно вводит в каждую ячейку вручную все эти дни. Но в Excel для выполнения подобной операции вам потребуется заполнить лишь первую ячейку. Запишем в неё Понедельник. Теперь выделяем эту ячейку и ведем курсор мыши к нижнему правому углу ячейки. Курсор приобретет вид черного крестика:

Как только курсор стал крестиком, жмем левую кнопку мыши и удерживая её тянем вниз(если надо заполнить строки) или вправо(если надо заполнить столбцы) на необходимое количество ячеек. Теперь все захваченные нами ячейки заполнены днями недели. И не одним Понедельником, а по порядку следования:

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

Напрашивается вопрос: так можно сделать только с днями недели или есть еще какие-то возможности? Ответ — есть, и немалые.
Если вместо левой кнопки мыши, зажать правую и протянуть, то по завершении Excel выдаст меню, в котором будет предложено выбрать метод заполнения: Копировать ячейки, Заполнить, Заполнить только форматы, Заполнить только значения, Заполнить по дням, Заполнить по рабочим дням, Заполнить по месяцам, Заполнить по годам, Линейное приближение, Экспоненциальное приближение, Прогрессия:

Выбираете необходимый пункт и вуаля!
Серым шрифтом выделены неактивные пункты меню — те, которые нельзя применить к данным в выделенных ячейках

Подобное автозаполнение доступно для числовых данных, для дат и некоторых распространенных данных — дней недели и месяцев.
Однако помимо использования встроенных в Excel списков автозаполнения, можно создать и свои списки. Например, Вы часто заполняете шапку таблицы словами: Дата, Артикул, Цена, Сумма. Можно их вписывать каждый раз или копировать откуда-то, но можно сделать и по-другому. Если Вы используете:

  • Excel 2003 , то переходите СервисПараметры -Вкладка Списки;
  • Excel 2007Кнопка ОфисПараметры Excel -вкладка Основные -кнопка Изменить списки;
  • Excel 2010ФайлПараметры -вкладка Дополнительно -кнопка Изменить списки. .

Выбираете пункт НОВЫЙ СПИСОК — ставите курсор в поле Элементы списка и заносите туда через запятую наименования столбцов, как показано на рисунке выше. Нажимаем Добавить.

Так же можно воспользоваться полем Импорт списка из ячеек. Активируем поле выбора, щелкнув в нем мышкой. Выбираем диапазон ячеек со значениями, из которых хотим создать список. Жмем Импорт. В поле Списки появиться новый список из значений указанных ячеек.

Теперь остается проверить в действии. Пишем в любую ячейку слово Дата и протягиваем, как описано выше. Excel заполнил нам остальные столбцы значениями из того списка, который мы сами только что создали. Вы можете изменять и удалять, созданные Вами списки, добавлять новые.
Созданные пользователем списки доступны из любой книги на том ПК, на котором эти списки были созданы.

Так же см.:
[[Выпадающие списки]]
[[Связанные выпадающие списки]]

Статья помогла? Поделись ссылкой с друзьями!

Отображение данных с помощью элементов управления DataList и Repeater (C#) Displaying Data with the DataList and Repeater Controls (C#)

В предшествующих учебных курсах мы использовали элемент управления GridView для отображения данных. In the preceding tutorials we have used the GridView control to display data. Начиная с этим руководством, мы рассматриваем распространенные шаблоны отчетов с элементами управления DataList и Repeater, начиная с основ отображения данных с помощью этих элементов управления. Starting with this tutorial, we look at building common reporting patterns with the DataList and Repeater controls, starting with the basics of displaying data with these controls.

Вступление Introduction

Во всех примерах на протяжении предыдущих 28 учебных курсов, если нужно отобразить несколько записей из источника данных, мы обращались к элементу управления GridView. In all of the examples throughout the past 28 tutorials, if we needed to display multiple records from a data source we turned to the GridView control. GridView отображает по строке для каждой записи в источнике данных, отображения поля данных записи s в столбцах. The GridView renders a row for each record in the data source, displaying the record s data fields in columns. Хотя GridView можно быстро установить для отображение, постраничный просмотр сортировка, редактирование и удаление данных, его внешний вид угловат. While the GridView makes it a snap to display, page through, sort, edit, and delete data, its appearance is a bit boxy. Кроме того, разметка ответственность для она имеет фиксированную структуру s GridView включает HTML

со строкой таблицы (

) для каждой записи и ячейки таблицы (

) для каждого поля. Moreover, the markup responsible for the GridView s structure is fixed it includes an HTML

with a table row (

) for each record and a table cell (

) for each field.

Чтобы обеспечить большую степень настройки внешнего вида и визуализированной разметке при отображении нескольких записей, ASP.NET 2.0 предлагаются элементы управления DataList и Repeater (которые также были доступны в ASP.NET версии 1.x). To provide a greater degree of customization in the appearance and rendered markup when displaying multiple records, ASP.NET 2.0 offers the DataList and Repeater controls (both of which were also available in ASP.NET version 1.x). Элементы управления DataList и Repeater визуализации их содержимого, с помощью шаблонов, а не полей BoundField CheckBoxFields, полей Buttonfield и так далее. The DataList and Repeater controls render their content using templates rather than BoundFields, CheckBoxFields, ButtonFields, and so on. Как и GridView, элемент управления DataList визуализируется как таблица HTML

, но позволяет несколько записей источника для отображения на каждую строку таблицы. Like the GridView, the DataList renders as an HTML

, but allows for multiple data source records to be displayed per table row. Элементу управления Repeater, с другой стороны, не визуализирует иной разметки чем что явным образом, после чего хорошо подходят в том случае, когда нужен точный контроль над создаваемой разметкой. The Repeater, on the other hand, renders no additional markup than what you explicitly specify, and is an ideal candidate when you need precise control over the markup emitted.

Над руководствах следующего десятка, или так мы рассмотрим создание распространенные шаблоны отчетов с элементами управления DataList и Repeater, начиная с основ отображения данных с помощью этих шаблонов элементов управления. Over the next dozen or so tutorials, we’ll look at building common reporting patterns with the DataList and Repeater controls, starting with the basics of displaying data with these controls templates. Узнаете, как форматировать эти элементы управления, как изменять компоновку записей источника данных в DataList, распространенные сценарии основной/подробности, способов изменения и удаления данных, как постраничного просмотра и т. д. We’ll see how to format these controls, how to alter the layout of data source records in the DataList, common master/details scenarios, ways to edit and delete data, how to page through records, and so on.

Шаг 1. Добавление элементов управления DataList и Repeater учебника веб-страниц Step 1: Adding the DataList and Repeater Tutorial Web Pages

Прежде чем приступать к этом руководстве, позволяют s сначала Отвлекитесь и добавим страницы ASP.NET, которые потребуются для изучения этого учебника и нескольких последующих учебных курсов дело отображение данных с помощью элементов управления DataList и Repeater. Before we start this tutorial, let s first take a moment to add the ASP.NET pages we’ll need for this tutorial and the next few tutorials dealing with displaying data using the DataList and Repeater. Начнем с создания новой папки в проект с именем DataListRepeaterBasics . Start by creating a new folder in the project named DataListRepeaterBasics . Добавьте следующие пять страниц ASP.NET в этой папке, в которых настроено использование главной страницы Site.master : Next, add the following five ASP.NET pages to this folder, having all of them configured to use the master page Site.master :

  • Default.aspx
  • Basics.aspx
  • Formatting.aspx
  • RepeatColumnAndDirection.aspx
  • NestedControls.aspx

Рис. 1: Создание DataListRepeaterBasics папки и добавление страниц учебника по ASP.NET Figure 1: Create a DataListRepeaterBasics Folder and Add the Tutorial ASP.NET Pages

Откройте Default.aspx страницы и перетащите SectionLevelTutorialListing.ascx пользовательского элемента управления с UserControls папку в область конструктора. Open the Default.aspx page and drag the SectionLevelTutorialListing.ascx User Control from the UserControls folder onto the Design surface. Данный пользовательский элемент управления, созданный в учебном курсе главные страницы и структуру переходов узла , просматривает карту узла и отображает руководства из текущего раздела в виде маркированного списка. This User Control, which we created in the Master Pages and Site Navigation tutorial, enumerates the site map and displays the tutorials from the current section in a bulleted list.

Рис. 2: Добавить SectionLevelTutorialListing.ascx для пользовательского элемента управления Default.aspx (Просмотр полноразмерного изображения) Figure 2: Add the SectionLevelTutorialListing.ascx User Control to Default.aspx (Click to view full-size image)

Чтобы маркированный список отображал элементов управления DataList и Repeater учебники, которые будут созданы, необходимо добавить их в карту узла. In order to have the bulleted list display the DataList and Repeater tutorials we’ll be creating, we need to add them to the site map. Откройте Web.sitemap файл и добавьте следующую разметку после разметки узла карты сайта Добавление настраиваемых кнопок: Open the Web.sitemap file and add the following markup after the Adding Custom Buttons site map node markup:

Рис. 3: Обновление карты узла для добавления новых страниц ASP.NET Figure 3: Update the Site Map to Include the New ASP.NET Pages

Шаг 2. Отображение информации о продукте в элементе управления DataList Step 2: Displaying Product Information with the DataList

Подобно FormView, s, выводимые данные элемента управления DataList зависит от шаблонов вместо полей BoundField, CheckBoxFields и т. д. Similar to the FormView, the DataList control s rendered output depends upon templates rather than BoundFields, CheckBoxFields, and so on. В отличие от FormView DataList предназначена для отображения набора записей, а не одиночной. Unlike the FormView, the DataList is designed to display a set of records rather than a solitary one. Позвольте s работы с этим руководством с рассмотрения привязки информации о продукте, чтобы элемент управления DataList. Let s begin this tutorial with a look at binding product information to a DataList. Сначала откройте Basics.aspx странице в DataListRepeaterBasics папку. Start by opening the Basics.aspx page in the DataListRepeaterBasics folder. Затем перетащите элемент управления DataList из инструментария в конструктор. Next, drag a DataList from the Toolbox onto the Designer. Как показано на рис. 4, перед указанием шаблонов элементов управления DataList s, он отображается в конструкторе как серый квадрат. As Figure 4 illustrates, before specifying the DataList s templates, the Designer displays it as a gray box.

Рис. 4: Перетащите элемент управления DataList из панели элементов на конструктор (Просмотр полноразмерного изображения) Figure 4: Drag the DataList From the Toolbox Onto the Designer (Click to view full-size image)

Из элемента управления DataList s смарт-теге, добавьте новый элемент управления ObjectDataSource и настроить его для использования ProductsBLL класс s GetProducts метод. From the DataList s smart tag, add a new ObjectDataSource and configure it to use the ProductsBLL class s GetProducts method. Так как мы повторно создание элементов управления DataList только для чтения в этом руководстве установлено стрелку раскрывающегося списка (нет) в s мастер вставки, обновления и удаления вкладок. Since we re creating a read-only DataList in this tutorial, set the drop-down list to (None) in the wizard s INSERT, UPDATE, and DELETE tabs.

Рис. 5: Решили создать новый элемент управления ObjectDataSource (Просмотр полноразмерного изображения) Figure 5: Opt to Create a New ObjectDataSource (Click to view full-size image)

Рис. 6: Настройка ObjectDataSource для использования ProductsBLL класс (Просмотр полноразмерного изображения) Figure 6: Configure the ObjectDataSource to Use the ProductsBLL Class (Click to view full-size image)

Рис. 7: Получить сведения о всех продуктах с помощью GetProducts метод (Просмотр полноразмерного изображения) Figure 7: Retrieve Information About All of the Products Using the GetProducts Method (Click to view full-size image)

После настройки ObjectDataSource и привязать его к DataList через его смарт-тег, Visual Studio автоматически создает ItemTemplate в элементе управления DataList, отображающий имя и значение каждого поля данных, возвращаемых источником данных (см. в разделе Разметка ниже). After configuring the ObjectDataSource and associating it with the DataList through its smart tag, Visual Studio will automatically create an ItemTemplate in the DataList that displays the name and value of each data field returned by the data source (see the markup below). Это значение по умолчанию ItemTemplate вида идентична шаблонов, автоматически созданных при привязке источника данных к элементу FormView через конструктор. This default ItemTemplate s appearance is identical to that of the templates automatically created when binding a data source to the FormView through the Designer.

Помните, что при привязке источника данных к элементу управления FormView через смарт-тега FormView s, Visual Studio будет создан ItemTemplate , InsertItemTemplate , и EditItemTemplate . Recall that when binding a data source to a FormView control through the FormView s smart tag, Visual Studio created an ItemTemplate , InsertItemTemplate , and EditItemTemplate . С помощью элемента управления DataList, однако только ItemTemplate создается. With the DataList, however, only an ItemTemplate is created. Это обусловлено DataList не имеет встроенной поддержки, предлагаемой FormView вставки и правки. This is because the DataList does not have the same built-in editing and inserting support offered by the FormView. Элемент управления DataList содержать события, связанные с edit и delete и поддержки правки и удаления можно добавить немного кода, но здесь s не простую поддержку out of box, как с помощью FormView. The DataList does contain edit- and delete-related events, and editing and deleting support can be added with a bit of code, but there s no simple out-of-the-box support as with the FormView. Узнаете, как для включения поддержки правки и удаления с помощью элемента управления DataList в дальнейших учебных курсах. We’ll see how to include editing and deleting support with the DataList in a future tutorial.

Позвольте s Отвлекитесь и улучшить внешний вид этого шаблона. Let s take a moment to improve the appearance of this template. Вместо отображения всех полей данных, позволяют отображать только название продукта s, поставщику, категории, количество за единицу и цена за единицу s. Rather than displaying all of the data fields, let s only display the product s name, supplier, category, quantity per unit, and unit price. Кроме того, позволяют s отобразим имя в

и скомпонуем оставшиеся поля, используя

под заголовком. Moreover, let s display the name in an

heading and lay out the remaining fields using a

beneath the heading.

Для внесения этих изменений, которые вы можете либо использовать функции в конструкторе на основе смарт-теге щелкните ссылку Изменить шаблоны или изменить шаблон напрямую через декларативный синтаксис страницы s s DataList редактирования шаблона. To make these changes you can either use the template editing features in the Designer from the DataList s smart tag click on the Edit Templates link or you can modify the template manually through the page s declarative syntax. При использовании параметра Правка шаблонов в конструкторе Получившаяся разметка может не полностью совпадают следующую разметку, но при просмотре через обозреватель покажется очень похожа на снимок экрана, показанный на рис. 8. If you use the Edit Templates option in the Designer, your resulting markup may not match the following markup exactly, but when viewed through a browser should look very similar to the screen shot shown in Figure 8.

В примере выше используется метка, для свойств Text свойству присваивается значение синтаксиса привязки данных. The example above uses Label Web controls whose Text property is assigned the value of the databinding syntax. Кроме того можно было опустить метки полностью, введя в только что синтаксис привязки данных. Alternatively, we could have omitted the Labels altogether, typing in just the databinding syntax. То есть вместо использования ‘ /> можно было бы вместо этого использовать декларативный синтаксис . That is, instead of using ‘ /> we could have instead used the declarative syntax .

Тем не менее, оставляя в элементах управления Label Web, предлагают два преимущества. Leaving in the Label Web controls, however, offer two advantages. Во-первых он предоставляет более простые средства для форматирования данных, на основе данных, как мы увидим в следующем учебном курсе. First, it provides an easier means for formatting the data based on the data, as we’ll see in the next tutorial. Во-вторых параметр Правка шаблонов в конструкторе t отображения декларативный синтаксис привязки данных, которая отображается за пределами некоторые веб-элемента управления. Second, the Edit Templates option in the Designer doesn t display declarative databinding syntax that appears outside of some Web control. Вместо этого интерфейса Правка шаблонов предназначен для упрощения работы со статической разметкой и веб-элементы управления и предполагается, что все привязки данных будет производиться через диалоговое окно Edit DataBindings, доступное из смарт-тегов элементов управления Web. Instead, the Edit Templates interface is designed to facilitate working with static markup and Web controls and assumes that any databinding will be done through the Edit DataBindings dialog box, which is accessible from the Web controls smart tags.

Таким образом при работе с DataList, которая предоставляет возможность правки шаблонов через конструктор, я предпочитаю использовать элементы управления Label Web, чтобы содержимое было доступно через интерфейс редактирования шаблонов. Therefore, when working with the DataList, which provides the option of editing the templates through the Designer, I prefer to use Label Web controls so that the content is accessible through the Edit Templates interface. Как скоро можно будет увидеть, элементу управления Repeater требует, что содержимое шаблона s редактироваться в представлении источника. As we’ll see shortly, the Repeater requires that the template s contents be edited from the Source view. Следовательно при берет на себя создание шаблонов s по элементу управления Repeater, я часто не будем Label Web элементов управления, если я знаю, что необходимо форматировать внешний вид данных привязан текста на основе программной логики. Consequently, when crafting the Repeater s templates I’ll often omit the Label Web controls unless I know I’ll need to format the appearance of the data bound text based on programmatic logic.

Рис. 8: Выходные данные каждого продукта s — к просмотру с помощью элементов управления DataList s ItemTemplate (Просмотр полноразмерного изображения) Figure 8: Each Product s Output is Rendered Using the DataList s ItemTemplate (Click to view full-size image)

Шаг 3. Улучшение внешнего вида элемента управления DataList Step 3: Improving the Appearance of the DataList

Например GridView, DataList имеют ряд свойств, относящихся к стилю, таких как Font , ForeColor , BackColor , CssClass , ItemStyle , AlternatingItemStyle , SelectedItemStyle , и т. д. Like the GridView, the DataList offers a number of style-related properties, such as Font , ForeColor , BackColor , CssClass , ItemStyle , AlternatingItemStyle , SelectedItemStyle , and so on. При работе с элементами управления GridView и DetailsView, мы создавали файлы обложек в DataWebControls темы, который предварительно определен CssClass свойства для этих двух элементов управления и CssClass для нескольких из их подсвойств ( RowStyle HeaderStyle , и так далее). When working with the GridView and DetailsView controls, we created Skin files in the DataWebControls Theme that pre-defined the CssClass properties for these two controls and the CssClass property for several of their subproperties ( RowStyle , HeaderStyle , and so on). Позвольте s сделайте то же самое для элемента управления DataList. Let s do the same for the DataList.


Как уже говорилось в отображение данных с ObjectDataSource учебника, файл обложки указывает связанные свойства по умолчанию веб-элемент управления; тема является коллекция файлы обложки, CSS, изображения и JavaScript, которые определяют определенный внешний вид и поведение веб-сайта. As discussed in the Displaying Data With the ObjectDataSource tutorial, a Skin file specifies the default appearance-related properties for a Web control; a Theme is a collection of Skin, CSS, image, and JavaScript files that define a particular look and feel for a website. В отображение данных с ObjectDataSource мы создали DataWebControls темы (который реализуется как папка внутри App_Themes папку), имеет, в настоящее время два файла обложки — GridView.skin и DetailsView.skin . In the Displaying Data With the ObjectDataSource tutorial, we created a DataWebControls Theme (which is implemented as a folder within the App_Themes folder) that has, currently, two Skin files — GridView.skin and DetailsView.skin . Позвольте s добавить третий файл обложки для указания параметров заранее определенный стиль для элемента управления DataList. Let s add a third Skin file to specify the pre-defined style settings for the DataList.

Чтобы добавить файл обложки, щелкните правой кнопкой мыши App_Themes/DataWebControls папку, выберите команду Добавить новый элемент и выберите файл обложки из списка. To add a Skin file, right-click on the App_Themes/DataWebControls folder, choose Add a New Item, and select the Skin File option from the list. Назовите файл DataList.skin . Name the file DataList.skin .

Рис. 9: Создание нового файла обложки с именем DataList.skin (Просмотр полноразмерного изображения) Figure 9: Create a New Skin File Named DataList.skin (Click to view full-size image)

Использовать следующую разметку для DataList.skin файла: Use the following markup for the DataList.skin file:

Эти параметры назначьте те же классы CSS к соответствующим свойствам элемента управления DataList, как использовались с элементами управления GridView и DetailsView. These settings assign the same CSS classes to the appropriate DataList properties as were used with the GridView and DetailsView controls. Классы CSS, используемый здесь DataWebControlStyle , AlternatingRowStyle , RowStyle , и так далее определяются в Styles.css файл и были добавлены в предыдущих учебных курсах. The CSS classes used here DataWebControlStyle , AlternatingRowStyle , RowStyle , and so on are defined in the Styles.css file and were added in previous tutorials.

С добавлением этого файла обложки внешний вид элемента управления DataList обновляется в конструкторе (может потребоваться обновить представление конструктора, чтобы увидеть воздействие нового файла обложки; из меню «Вид», выберите «Обновить»). With the addition of this Skin file, the DataList s appearance is updated in the Designer (you may need to refresh the Designer view to see the effects of the new Skin file; from the View menu, choose Refresh). Как показано на рис. 10, каждого второго продукта имеет Светло-розовый фон цвет. As Figure 10 shows, each alternating product has a light pink background color.

Рис. 10: Создание нового файла обложки с именем DataList.skin (Просмотр полноразмерного изображения) Figure 10: Create a New Skin File Named DataList.skin (Click to view full-size image)

Шаг 4. Изучение элементов управления DataList s других шаблонов Step 4: Exploring the DataList s Other Templates

В дополнение к ItemTemplate , DataList поддерживает шесть других необязательных шаблонов: In addition to the ItemTemplate , the DataList supports six other optional templates:

  • HeaderTemplate Если предоставляется, добавляет строку заголовка в выходные данные и используется для визуализации этой строки HeaderTemplate if provided, adds a header row to the output and is used to render this row
  • AlternatingItemTemplate используется для визуализации переменных элементов AlternatingItemTemplate used to render alternating items
  • SelectedItemTemplate используется для визуализации выбранного элемента; Выбранный элемент является элементом, чей индекс соответствует относящемуся к DataList s SelectedIndex свойство SelectedItemTemplate used to render the selected item; the selected item is the item whose index corresponds to the DataList s SelectedIndex property
  • EditItemTemplate использовать для отображения редактируемого элемента EditItemTemplate used to render the item being edited
  • SeparatorTemplate Если предоставляется, служит разделителем между каждым элементом и используется для визуализации этого разделителя SeparatorTemplate if provided, adds a separator between each item and is used to render this separator
  • FooterTemplate — Если предоставляется, добавляет строку нижнего колонтитула в выходные данные и используется для визуализации этой строки FooterTemplate — if provided, adds a footer row to the output and is used to render this row

При указании HeaderTemplate или FooterTemplate , DataList добавляет дополнительную строку верхнего или нижнего колонтитула выводимых данных. When specifying the HeaderTemplate or FooterTemplate , the DataList adds an additional header or footer row to the rendered output. Как и с GridView s колонтитулы строк, заголовка и нижнего колонтитула в элементе управления DataList не привязанных к данным. Like with the GridView s header and footer rows, the header and footer in a DataList are not bound to data. Таким образом, любой синтаксис привязки данных в HeaderTemplate или FooterTemplate , попытки доступа к привязанных данных вернет пустую строку. Therefore, any databinding syntax in the HeaderTemplate or FooterTemplate that attempts to access bound data will return a blank string.

Как мы видели в отображение сведения о в нижнем колонтитуле GridView s учебник, хотя строки верхнего и нижнего колонтитулов кое синтаксис привязки данных для поддержки t, сведения, относящиеся к данным можно внедрить непосредственно в эти строки из GridView s RowDataBound обработчик событий. As we saw in the Displaying Summary Information in the GridView s Footer tutorial, while the header and footer rows don t support databinding syntax, data-specific information can be injected directly into these rows from the GridView s RowDataBound event handler. Этот метод можно использовать для вычисления итогов или другие сведения из данных привязанных к элементу управления, а также назначить эту информацию в нижнем колонтитуле. This technique can be used to both calculate running totals or other information from the data bound to the control as well as assign that information to the footer. То же самое может применяться к элементам управления DataList и Repeater; Единственное отличие заключается в, для элементов управления DataList и Repeater создать обработчик событий для ItemDataBound событий (а не для RowDataBound событий). This same concept can be applied to the DataList and Repeater controls; the only difference is that for the DataList and Repeater create an event handler for the ItemDataBound event (instead of for the RowDataBound event).

В нашем примере позволяют s имеют заголовок отображается в верхней части элемента управления DataList s приводит сведения о продукте

заголовок. For our example, let s have the title Product Information displayed at the top of the DataList s results in an

heading. Для этого добавьте HeaderTemplate соответствующая разметка. To accomplish this, add a HeaderTemplate with the appropriate markup. В конструкторе, это можно сделать, щелкнув ссылку Изменить шаблоны в смарт-теге элемента управления DataList s, выбрав шаблон заголовка из раскрывающегося списка и введя текст, когда вы выберете параметр заголовок 3 из раскрывающегося списка стиля списка (см. рис. 11). From the Designer, this can be accomplished by clicking on the Edit Templates link in the DataList s smart tag, choosing the Header Template from the drop-down list, and typing in the text after picking the Heading 3 option from the style drop-down list (see Figure 11).

Рис. 11: Добавить HeaderTemplate с сведения о продукте текст (Просмотр полноразмерного изображения) Figure 11: Add a HeaderTemplate with the Text Product Information (Click to view full-size image)

Чтобы добавить свободное пространство между каждым списком продуктов, позволяют добавить s SeparatorTemplate , включающий линию между каждым разделом. To add a bit of space between each product listing, let s add a SeparatorTemplate that includes a line between each section. Тег горизонтальной чертой ( ), добавляет такой разделитель. The horizontal rule tag ( ), adds such a divider. Создание SeparatorTemplate таким образом, чтобы он имеет следующую разметку: Create the SeparatorTemplate so that it has the following markup:

Как и HeaderTemplate и FooterTemplates , SeparatorTemplate не привязан к записям из источника данных и таким образом не может иметь непосредственного доступа к записи, привязанные к элементу управления DataList источника данных. Like the HeaderTemplate and FooterTemplates , the SeparatorTemplate is not bound to any record from the data source and therefore cannot directly access the data source records bound to the DataList.

После этого добавления при просмотре страницы в обозревателе это должно выглядеть на рис. 12. After making this addition, when viewing the page through a browser it should look similar to Figure 12. Обратите внимание на то, строку заголовка и линейку между каждым списком продуктов. Note the header row and the line between each product listing.

Рис. 12: В элементе DataList имеются строка заголовка и горизонтальные правило между Each списка продуктов (Просмотр полноразмерного изображения) Figure 12: The DataList Includes a Header Row and a Horizontal Rule Between Each Product Listing (Click to view full-size image)

Шаг 5. Визуализация конкретной разметки с элементом управления Repeater Step 5: Rendering Specific Markup with the Repeater Control

В этом случае просмотр исходного кода из браузера при просмотре в DataList примере на рис. 12, вы увидите, что элемент управления DataList создает таблицу HTML

, содержащий строку таблицы (

) с одной ячейки таблицы (

) для каждого элемента, привязанного к Элемент управления dataList. If you do a View/Source from your browser when visiting the DataList example from Figure 12, you’ll see that the DataList emits an HTML

that contains a table row (

) with a single table cell (

) for each item bound to the DataList. Эти выходные данные, на самом деле, идентична что создавались бы элемента GridView с одной TemplateField. This output, in fact, is identical to what would be emitted from a GridView with a single TemplateField. Как мы увидим в дальнейших учебных курсах, элемент управления DataList допускает дальнейшую настройку выходных данных, благодаря чему мы можем отображать несколько записей источника данных на каждую строку таблицы. As we’ll see in a future tutorial, the DataList does allow further customization of the output, enabling us to display multiple data source records per table row.

Что делать, если нигде не требуется t таблицы HTML

, хотя? What if you don t want to emit an HTML

, though? Для полного и абсолютного контроля над разметкой, создаваемой веб-элемент данных необходимо использовать элемент управления Repeater. For total and complete control over the markup generated by a data Web control, we must use the Repeater control. Как и элемент управления DataList Repeater конструируется на основе шаблонов. Like the DataList, the Repeater is constructed based upon templates. Тем не менее, элементу управления Repeater, предлагает только следующие пять шаблонов: The Repeater, however, only offers the following five templates:

  • HeaderTemplate Если предоставлен, добавляет указанную разметку перед элементами HeaderTemplate if provided, adds the specified markup before the items
  • ItemTemplate используется для визуализации элементов ItemTemplate used to render items
  • AlternatingItemTemplate Если указано, используется для визуализации переменных элементов AlternatingItemTemplate if provided, used to render alternating items
  • SeparatorTemplate Если предоставлен, добавляет указанную разметку между элементами SeparatorTemplate if provided, adds the specified markup between each item
  • FooterTemplate — Если предоставлен, добавляет указанную разметку после элементов FooterTemplate — if provided, adds the specified markup after the items

В ASP.NET 1.x, элементу управления Repeater, часто использовался для отображения маркированного списка, данные которого происходили из какого-либо источника данных. In ASP.NET 1.x, the Repeater control was commonly used to display a bulleted list whose data came from some data source. В таком случае HeaderTemplate и FooterTemplates будет содержать открывающим и закрывающим

    теги, соответственно, тогда как ItemTemplate будет содержать
    элементов при помощи синтаксиса привязки данных. In such a case, the HeaderTemplate and FooterTemplates would contain the opening and closing

      tags, respectively, while the ItemTemplate would contain
      elements with databinding syntax. Такой подход по-прежнему может использоваться в среде ASP.NET 2.0, как мы видели в двух примерах главные страницы и переходы по узлу руководства: This approach can still be used in ASP.NET 2.0 as we saw in two examples in the Master Pages and Site Navigation tutorial:

    • В Site.master главной страницы элемента управления Repeater был использован для отображения маркированного списка содержимого карты сайта верхнего уровня (Basic Reporting, Filtering Reports, Настройка форматирования и т. д.); в другой, вложенный элемент управления Repeater использовался для отображения дочерних разделов разделы верхнего уровня In the Site.master master page, a Repeater was used to display a bulleted list of the top-level site map contents (Basic Reporting, Filtering Reports, Customized Formatting, and so on); another, nested Repeater was used to display the children sections of the top-level sections
    • В SectionLevelTutorialListing.ascx , элемент управления Repeater был использован для отображения маркированного списка дочерних разделов текущего раздела карты сайта In SectionLevelTutorialListing.ascx , a Repeater was used to display a bulleted list of the children sections of the current site map section

    ASP.NET 2.0 введен новый управления BulletedList, который можно привязать к элементу управления источником данных для отображения простого маркированного списка. ASP.NET 2.0 introduces the new BulletedList control, which can be bound to a data source control in order to display a simple bulleted list. С элементом управления BulletedList, нам не нужно указывать какие-либо список связанных с HTML-код; Вместо этого мы просто указать поле данных для отображения в виде текста для каждого элемента списка. With the BulletedList control we do not need to specify any of the list-related HTML; instead, we simply indicate the data field to display as the text for each list item.

    Элементу управления Repeater служит в качестве catch все данные веб-элемента управления. The Repeater serves as a catch all data Web control. Если не существующего элемента управления, необходимую разметку, можно использовать элемент управления Repeater. If there is not an existing control that generates the needed markup, the Repeater control can be used. Чтобы проиллюстрировать использование элемента управления Repeater, позвольте s Возьмем список категорий, отображенных над DataList сведения продукт, созданный на шаге 2. To illustrate using the Repeater, let s have the list of categories displayed above the Product Information DataList created in Step 2. В частности, позволяют s Возьмем категории, отображенные в таблице HTML

с каждой категорией, отображаться в виде столбца в таблице. In particular, let s have the categories displayed in a single-row HTML

with each category displayed as a column in the table.

Для этого запустите, перетащив элемент управления Repeater из области элементов в конструктор над DataList сведения продукта. To accomplish this, start by dragging a Repeater control from the Toolbox onto the Designer, above the Product Information DataList. Как и в DataList, Repeater изначально отображается как серый квадрат пока его шаблоны определены. As with the DataList, the Repeater initially displays as a gray box until its templates have been defined.

Рис. 13: Добавление элемента управления Repeater в конструктор (Просмотр полноразмерного изображения) Figure 13: Add a Repeater to the Designer (Click to view full-size image)

Существует только один параметр s в элементу управления Repeater s смарт-тег: Выберите источник данных. There s only one option in the Repeater s smart tag: Choose Data Source. Необязательно для создания нового источника ObjectDataSource и настроить его для использования CategoriesBLL класс s GetCategories метод. Opt to create a new ObjectDataSource and configure it to use the CategoriesBLL class s GetCategories method.

Рис. 14: Создайте новый ObjectDataSource (Просмотр полноразмерного изображения) Figure 14: Create a New ObjectDataSource (Click to view full-size image)

Рис. 15: Настройка ObjectDataSource для использования CategoriesBLL класс (Просмотр полноразмерного изображения) Figure 15: Configure the ObjectDataSource to Use the CategoriesBLL Class (Click to view full-size image)

Рис. 16: Получить сведения о всех категорий с помощью GetCategories метод (Просмотр полноразмерного изображения) Figure 16: Retrieve Information About All of the Categories Using the GetCategories Method (Click to view full-size image)

В отличие от элементов управления DataList Visual Studio не создает автоматически ItemTemplate для элемента управления Repeater после ее привязки к источнику данных. Unlike the DataList, Visual Studio does not automatically create an ItemTemplate for the Repeater after binding it to a data source. Кроме того шаблоны элемента управления Repeater s не могут быть настроены через конструктор и должны быть указаны декларативно. Furthermore, the Repeater s templates cannot be configured through the Designer and must be specified declaratively.

Для отображения категорий как однострочный

со столбцом для каждой категории, нам нужно элементу управления Repeater должен создавать разметку, аналогичную следующей: To display the categories as a single-row

with a column for each category, we need the Repeater to emit markup similar to the following:

Так как

текста — это часть, которая повторяется, оно будет отображаться в s ItemTemplate элемента управления Repeater. Since the

text is the portion that repeats, this will appear in the Repeater s ItemTemplate. Разметка, появляющаяся перед этим —

Category X Category X
-будут помещены в HeaderTemplate при завершающая разметка —

-будет располагаться в FooterTemplate . The markup that appears before it —

— will be placed in the HeaderTemplate while the ending markup —

— will placed in the FooterTemplate . Чтобы ввести параметры шаблона, перейдите в декларативный раздел страницы ASP.NET, щелкнув «источник» в левом нижнем углу и введите следующий синтаксис: To enter these template settings, go to the declarative portion of the ASP.NET page by clicking on the Source button in the lower left corner and type in the following syntax:

Repeater создает точную разметку в соответствии с шаблонами, не более и не меньше. The Repeater emits the precise markup as specified by its templates, nothing more, nothing less. Рис. 17 показаны выходные данные элемента управления Repeater s при просмотре через браузер. Figure 17 shows the Repeater s output when viewed through a browser.

Рис. 17: HTML однострочный

перечислены каждой категории в отдельном столбце (Просмотр полноразмерного изображения) Figure 17: A Single-Row HTML

Lists Each Category in a Separate Column (Click to view full-size image)

Шаг 6. Улучшение внешнего вида элемента Repeater Step 6: Improving the Appearance of the Repeater

Так как Repeater создает точно такую разметку, указано его шаблонами, должен содержать как неудивительно, что нет относящихся к стилю свойств для элемента управления Repeater. Since the Repeater emits precisely the markup specified by its templates, it should come as no surprise that there are no style-related properties for the Repeater. Чтобы изменить внешний вид содержимого, создаваемого элементом управления Repeater, мы необходимо вручную добавить необходимое содержимое HTML или CSS непосредственно на шаблоны элемента управления Repeater s. To alter the appearance of the content generated by the Repeater, we must manually add the needed HTML or CSS content directly to the Repeater s templates.

В нашем примере позволяют s, которые имеют столбцы категорий имеют различные цвета фона, подобно чередующимся строкам в элементе управления DataList. For our example, let s have the category columns alternate background colors, like with the alternating rows in the DataList. Для этого нам нужно назначить RowStyle класс CSS для каждого элемента управления Repeater и AlternatingRowStyle класс CSS для каждого переменного элемента Repeater через ItemTemplate и AlternatingItemTemplate примерно так: To accomplish this, we need to assign the RowStyle CSS class to each Repeater item and the AlternatingRowStyle CSS class to each alternating Repeater item through the ItemTemplate and AlternatingItemTemplate templates, like so:

Позвольте s также добавить строку заголовка в выходные данные с текстом категорий продуктов. Let s also add a header row to the output with the text Product Categories. Так как мы кое t знать количество столбцов итоговой таблице

будет состоять, самый простой способ создания строки заголовка, которая гарантированно охватит все столбцы, — использовать два

s. Since we don t know how many columns our resulting

will be comprised of, the simplest way to generate a header row that is guaranteed to span all columns is to use two

s. Первый

будет содержать две строки, строки заголовка и строку, которая будет содержать во-вторых, однострочный

которой имеется столбец для каждой категории в системе. The first

will contain two rows the header row and a row that will contain the second, single-row

that has a column for each category in the system. То есть мы хотим создать следующую разметку: That is, we want to emit the following markup:

Следующие HeaderTemplate и FooterTemplate приведет к желаемой разметке: The following HeaderTemplate and FooterTemplate result in the desired markup:

Рис. 18 показана элементу управления Repeater, после внесения этих изменений. Figure 18 shows the Repeater after these changes have been made.

Рис. 18: Категория столбцы альтернативного цвет фона и включает строку заголовка (Просмотр полноразмерного изображения) Figure 18: The Category Columns Alternate in Background Color and Includes a Header Row (Click to view full-size image)

Сводка Summary

Хотя элемент управления GridView упрощает для отображения, изменения, удаления, сортировки и перемещение по данным, внешний вид весьма угловат и напоминает сетку. While the GridView control makes it easy to display, edit, delete, sort, and page through data, the appearance is very boxy and grid-like. Для большего контроля над внешним видом нам нужно включить для элементов управления DataList или Repeater. For more control over the appearance, we need to turn to either the DataList or Repeater controls. Эти элементы управления отображения набора записей при помощи шаблонов вместо полей BoundField, CheckBoxFields и т. д. Both of these controls display a set of records using templates instead of BoundFields, CheckBoxFields, and so on.

Элемент управления DataList визуализируется как таблица HTML

, по умолчанию отображается каждая запись источника данных в одну строку таблицы, так же, как элемент управления GridView с одной TemplateField. The DataList renders as an HTML

that, by default, displays each data source record in a single table row, just like a GridView with a single TemplateField. Как мы увидим в дальнейших учебных курсах, тем не менее, элемент управления DataList пропускать несколько записей для отображения на каждую строку таблицы. As we will see in a future tutorial, however, the DataList does permit multiple records to be displayed per table row. Элементу управления Repeater, с другой стороны, создает исключительно разметку, указанную в его шаблонах; он не добавляет дополнительной разметки и поэтому обычно используется для отображения данных в HTML-элементов, отличных от

(например, в виде маркированного списка). The Repeater, on the other hand, strictly emits the markup specified in its templates; it does not add any additional markup and therefore is commonly used to display data in HTML elements other than a

(such as in a bulleted list).

Хотя элемент управления DataList и Repeater предлагают дополнительную гибкость в отображении выходных данных, них нет многих встроенных функций в GridView. While the DataList and Repeater offer more flexibility in their rendered output, they lack many of the built-in features found in the GridView. Как мы увидим в последующих учебных курсах, некоторые из этих функций можно подключить обратно без особых усилий, но следует помнить, использовать DataList или Repeater вместо GridView ограничив набор функций, которые можно использовать без необходимости реализации таких возможностей самостоятельно. As we’ll examine in upcoming tutorials, some of these features can be plugged back in without too much effort, but do keep in mind that using the DataList or Repeater in lieu of the GridView does limit the features you can use without having to implement those features yourself.

Счастливого вам программирования! Happy Programming!

Создание пользовательских списков автозаполнения

При работе с MS Excel может возникнуть потребность в создании не только числовых, но и текстовых последовательностей. MS Excel позволяет соз- давать последовательности текстовых значений автоматически, при этом такая возможность существует в нескольких вариантах:

· Excel умеет распознавать числа в текстовых значениях;

· Excel может создавать последовательность на основе заданного ранее списка автозаполнения.

Список автозаполнения– список текстовых значений, расположенных в определенном порядке. Если при автозаполнении в первой ячейке диапазона находится значение, принадлежащее одному из списков, то остальные ячейки будут последовательно заполнены значениями из этого списка.

Для создания собственного списка Автозаполнения необходимо:


1. Кнопка OfficeПараметры ExcelОсновныеОсновные параметры работы с ExcelИзменить списки.

2. В поле Настраиваемые списки выберите значение НОВЫЙ СПИСОК, а затем введите нужные записи в поле Элементы спи- ска, начиная с первого элемента.

3. После ввода каждого из элементов нажмите клавишу ENTER.

4. По завершении ввода списка нажмите кнопку Добавить.

5. Выбранные для списка элементы будут добавлены в поле На- страиваемые списки.

6. Два раза нажмите кнопку ОК.

Рисунок 3.7 – Создание списка Автозаполнения

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Для студента самое главное не сдать экзамен, а вовремя вспомнить про него. 10024 — | 7496 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Выпадающий список в Excel с помощью инструментов или макросов

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

Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.

Создание раскрывающегося списка

Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».

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

  1. Вручную через «точку-с-запятой» в поле «Источник».
  2. Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
  3. Назначить имя для диапазона значений и в поле источник вписать это имя.

Любой из вариантов даст такой результат.

Выпадающий список в Excel с подстановкой данных

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

  1. Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
  2. Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
  3. Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:

Протестируем. Вот наша таблица со списком на одном листе:

Добавим в таблицу новое значение «елка».

Теперь удалим значение «береза».

Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.

Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.

  1. Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
  2. Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
  3. Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
  4. Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
  5. Сохраняем, установив тип файла «с поддержкой макросов».
  6. Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».

Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».

Нажмем «Да» и добавиться еще одна строка со значением «баобаб».

Выпадающий список в Excel с данными с другого листа/файла

Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.

  1. Делаем активной ячейку, куда хотим поместить раскрывающийся список.
  2. Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).

Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.

Как сделать зависимые выпадающие списки

Возьмем три именованных диапазона:

Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.

  1. Создадим первый выпадающий список, куда войдут названия диапазонов.
  2. Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
  3. Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.

Выбор нескольких значений из выпадающего списка Excel

Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.

  1. Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
  2. Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
  3. Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.

Private Sub Worksheet_Change( ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range( «C2:C5» )) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & «,» & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub

Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.

Выпадающий список с поиском

  1. На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
  2. Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
  3. Жмем «Свойства» – открывается перечень настроек.
  4. Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.

При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.

HTML тег

Элемент (от англ. «data list» ‒ «список данных») используется для «автозаполнения» элемента . При активации соответствующего элемента (например, если пользователь начал ввод какого-нибудь текста в поле ввода) пользователь увидит выпадающий список из предопределенных вариантов данных для ввода.

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

Атрибут list тега должен соответствовать идентификатору (глобальный атрибут > .

Вы можете заполнить элемент путем вложения в него тегов .

Синтаксис

Закрывающий тег

Атрибуты

Для этого элемента доступны глобальные атрибуты и события.

Стилизация по умолчанию

Большинство браузеров отобразит элемент со следующими значениями CSS по умолчанию:

Добавить комментарий