Инструменты пользователя

Инструменты сайта


limb3:ru:packages:wact:tags:form_tags:select_options_source_tag

<select:options_source>

Описание

Позволяет преобразовывать различные источники данных (итераторы или обычные массивы) в форму, понятную компонентам тега <select> для формирования списка тегов <option>.

Этот тег используется в случаях:

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

<select:options_source> является WactRuntimeDatasourceComponentTag и создает активный компонент класса WactSelectOptionsSourceComponent.

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

см. также раздел "Использование select тегов", где есть примеры использования этого тега, а также объяснен принцип работы с <select> тегами в WACT-шаблонах.

Синтаксис

<select:options_source target='target1[,target2,...]' [from="data_binding_expression"] [use_as_name='name_field'] [use_as_id='id_field'] [default_value='default_option_id'] [default_name='Default option title']>

Область применения

Внутри тега <form> с runtime='server', совместно с тегами <select>.

Атрибуты

  • target – теги <select>, которые должны получить преобразованный список опций. Можно указать несколько тегов, указав их через запятую.
  • use_as_name(опционально) - позволяет указать название поля, значение которого будет использоваться как название опции.
  • use_as_id(опционально) - позволяет указать название поля, значение которого будет использоваться как идентификатор опции.
  • default_value(опционально) - позволяет указать значение еще одной опции, опции по-умолчанию
  • default_name(опционально) - позволяет указать значение еще одной опции, опции по-умолчанию
  • from(опционально) - позволяет указать путь до переменной DBE, которую можно использовать как источник данных для преобразования к нужной форме.

Содержимое

Нет.

WactSelectOptionsSourceComponent

  • getChoices() - возвращает список преобразованных опций.
  • useAsName($field_name) – позволяет указать, какое поле записи итератора использовать как название опции.
  • useAsId($field_name) – позволяет указать, какое поле записи итератора использовать как идентификатор опции.
  • useAsName($field_name) – позволяет указать, какое поле записи итератора использовать как название опции.
  • registerDataset($iterator_or_array) – задает набор данных в виде итератора.
  • registerDatasource($array) – задает набор данных в виде обычного массива.

Обратите внимание, что компонент поддерживает и registerDataset, и registerDatasource, при этом данные обрабатываются различными способами.

Пример использования

Рабочий пример можно найти в папке limb/wact/examples/form/select/

Шаблон form.html:

<form id='coach_form' name='coach_form' method='post' runat='server'>
 
<select:OPTIONS_SOURCE id="team_select_source" target="team_id" use_as_name="title" use_as_id="id" default_id='-1' default_name='Select a team' />
 
<label for="team_id">Team</label>:<select id='team_id' name='team_id'></select>
 
</form>

php-скрипт:

 $template = new WactTemplate('form.html');
 $options = $template->getChild('team_select_source');
 
 $teams = array(array('id' => '1', 'title' => 'Spartak'),
                array('id' => '2', 'title' => 'Dinamo'),
                array('id' => '3', 'title' => 'Zenit'));
 $options->registerDataset($teams);
 $template->display();

см. также примеры в разделе "Использование select тегов".

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
     __   _  __   ____   ____ __  __
 __ / /  / |/ /  / __/  / __/ \ \/ /
/ // /  /    /  / _/   / _/    \  / 
\___/  /_/|_/  /_/    /___/    /_/
 
limb3/ru/packages/wact/tags/form_tags/select_options_source_tag.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)