Как сделать зависимые поля в форме (Страна, Город)
Т.е. при обновлении одного поля, необходимо, чтобы другое также меняло свое состояние.
- Ставим у колонки поле Зависимые поля (dependentCols) списком через запятую (указываем те поля, которые должны обновляться при изменении данного поля).
- В процедуре Источника будет необязательный параметр @fields DictionaryParameter, который передает текущее состояние формы (он должен быть необязательный как в примере). ВАЖНО! Он используется только в зависимых столбцах. В обычных элементах с выбором из списка не нужно его указывать.
Ведущий запрос (Страны). fields можно здесь не использовать в параметрах (если использовать, то по умолчанию ‘’).
CREATE PROCEDURE [dbo].[fm_user_country_dict]
@username nvarchar(256),
@itemID int
AS
BEGIN
select 'Не выбрано' Text, 0 Value, 0 Selected
union
select name Text, id Value, 0 Selected from as_geo_regions
where typeID = 1
order by Text
END
Ведомый запрос (города). Важно соблюсти все нюансы использования fields+ искать и по id и по name через or как в примере.
CREATE PROCEDURE [dbo].[fm_user_country_dict]
@username nvarchar(256),
@itemID int,
@fields DictionaryParameter READONLY
AS
BEGIN
declare @country nvarchar(128)
select @country = Value from @fields where [key] = 'country'
exec dbo.as_print @str = @country
select 'Не выбрано' Text, 0 Value, 0 Selected
union
select name Text, id Value, 0 Selected from as_geo_regions where typeID = 1 and
(cast(parentID as nvarchar) = @country or isnull(@country, '') = '' or parentID in (select id from as_geo_regions where name = @country))
order by Text
END
- Разметка в форме любая, можно использовать например такую:
<label>Страна / город </label> {colcontrol-country} {colcontrol-city}
- В процедуре GetItem устанавливайте значения для обоих полей.
isnull((select name from as_geo_regions
where id = (select parentID from as_geo_regions where id = regionID)), 'Не указан') country,
isnull((select name from as_geo_regions
where id = regionID), 'Не указан') city
- В итоге поля будут работать как зависимые.

Рабочий пример - https://demo.web-automation.ru/list/watch/zavisimye-polya---32
Примечание:
Зависимые столбцы работают не только для списковых элементов, но и для полей типа text и др.
Для этого указываем также зависимые поля и устанавливаем не для спискового значения хранимку значений, которая должна возвращать 1 строку с Text и Value:
- Text - устанавливает значение элемента.
- Value - если 0, то прячет элемент.
Пример:
CREATE PROCEDURE [dbo].[fm_user_email_dict]
@username nvarchar(256),
@itemID nvarchar(128),
@fields DictionaryParameter READONLY --- если нужно сделать зависимые столбцы (в
коллекции передаются состояние всех столбцов)
AS
BEGIN
DECLARE @skype nvarchar(128)
SELECT @skype = Value FROM @fields WHERE [Key] = 'skype'
if(@skype<>'')BEGIN
SELECT 'Есть скайп' Text, 1 Value, 0 Selected
END else BEGIN
SELECT '' Text, 0 Value, 0 Selected
END
END
ВАЖНО. Скрытие видимости не будет действовать для списковых полей!
Примечание:
Для поля типа select-search не будет работать как зависимое дочернее поле, но при этом может быть родительским полем.
Поля chosen и chosenMultiple могут быть как зависимые поля (как родительским, так и дочерним элементом).
Страница-источник на сайте falconspace.ru
-
Руководства
-
Основа Falcon Space
-
Основные компоненты
-
Возможности
-
Коммуникация пользователей
-
Дизайн, стилизация, юзабилити
-
Лендинги
-
Универсальный API
-
Интеграции
-
Каталоги
-
Навигация
-
Документы
-
Дополнительные компоненты
-
Продвижение, SEO
-
Системные моменты
-
Системное администрирование
-
HOWTO
-
Таблицы
-
Формы
Как вывести форму во всплывающем окне рядом с кнопкой (popover) Загрузка формы по ссылке Как принимать в форму не 1 параметр (itemID), а несколько входящих параметров? data-param-p1 Как сделать модальную форму Как добавить коллбек после загрузки формы и после сохранения формы. Как показывать на форме прогресс заполнения (прогресс заполнения формы) Как сделать форму в виде мастера шагов Как сделать подтверждение действия в СМС (SMS) в форме Как установить поля в форме по умолчанию при загрузке Как показывать изменяющуюся информацию при изменении полей Формы. Как сделать в форме более 1 кнопки действий (несколько кнопок действий на форме) Как правильно обрабатывать цены (дробные числа) на форме Как передать в форму скрытый параметр Как в форме добавить примеры заполнения полей (example) Как выбрать значение списка через справочник в модальном окне Как сделать окно подтверждения действия формы Динамическое изменение itemID у формы в зависимости от других элементов страницы Как скрывать/показывать, обновлять область на странице при изменении поля формы Как добавить новый элемент, если в списке на форме его нет Как перезагрузить страницу после сохранения формы Как вывести списковые данные или таблицу внутри формы Как сделать зависимые поля в форме (Страна, Город) Как сделать кастомную HTML разметку для формы (jsRender) Как создать кастом форму с подтверждением действия по Email или SMS Установка фоновой панели для формы Как сделать задержку при сохранении формы (saveDelay) Подсказки-ограничители длины для полей в форме Как динамически изменять тип поля формы Как сохранить значение поля в браузере, чтобы каждый раз его не вбивать при загрузке (оставлять последнее сохраненное). Запоминание поля формы в браузере Как выводить разные данные на одной форме для разных ролей Как сделать форму с сохранением состояния Как сделать поля с анимацией значений Использование Google Recaptcha в формах Как обновить таблицу после сохранения формы в модальном окне Как указать произвольную маску для поля ввода в форме Кастом проверка полей формы через JS Как в выборе даты (datepicker) задать доступные даты Как создать форму для редактирования сущности Загрузка формы в выпадающем окне (dropdown) Добавление смайликов (emoji) в поля форм Как у формы сделать progress bar при загрузке формы Работа с датами в формах Показ количества символов рядом с полем в форме Кнопка очистки формы Reset Контроль заполнения ключевых форм на сайте Как сделать форму с простым подтверждением действия (confirm) Как поменять соотношение длины метки и поля Как при сохранении формы вывести сообщение printlog, а не alert
-
Поля формы
-
Загрузка файлов, картинок
-
HOWTO SQL
-
HOWTO JS
-
HOWTO Верстка
-
Решение проблем