Фильтрация источника данных одного из полей с подбором значения в зависимости от выбранного значения в другом поле с подбором значения
Дано: 3 Autocomplete поля: Страна, область и город. Необходимо организовать последовательное заполнение этих полей.
Проблема: Если просто использовать 3 Autocomplete поля, без настройки,пользователь сможет выбрать несуществующую цепочку, к примеру: Германия - Татарстан - Пекин
Нужно, чтобы в следующем уровне можно было выбирать только дочерние значения родительского уровня. В России можно выбирать только российские населенные пункты и т.д.
Пример настройки
На страницу добавлены нужные компоненты:
- Настроить Autocomplete. Autocomplete области и города сделать неактивными (Enabled = false), для того, чтобы пользователь заполнял поля последовательно.
- Задать свойство filter column
для Autocomplete области фильтруем по странам, для города - по областям. Для Autocomplete страны не задаем. -
Настраиваем ActionController’ы:
Настроем ActionController, который отвечает за фильтрацию области по стране. Настройка выглядит следующим образом:
ЕСЛИ Autocomplete страны был заполнен,
ТОГДА установить фильтр дляAutocomplete области (метод setFilter) по значению изAutocomplete страны.
А также сделать активным(Enabled = true)Autocomplete области.
ИНАЧЕ очистить фильтр используя метод resetFilter
исделать неактивным (Enabled = false) Autocomplete области.
5. Аналогично настраивается второйAutocomplete.
Фильтрация может задаваться 2 способами:
- C использованием метода getValue :
Autocomplete_1:
Autocomplete_2:
Используется метод getValue:
- C помощью метода getBusinessId:
Autocomplete_1:
Autocomplete_2:
Используется метод getBusinessId:
image2016-7-20 11:53:54.png (image/png)
image2016-7-20 11:53:39.png (image/png)
Screenshot from 2017-05-26 16-21-02.png (image/png)
image2016-7-20 15:11:46.png (image/png)
image2016-7-20 15:11:21.png (image/png)
image2016-7-20 15:16:4.png (image/png)
image2016-7-20 15:13:48.png (image/png)
image2016-7-20 15:14:28.png (image/png)
image2016-7-20 15:15:19.png (image/png)