Каталог List. Создание кастом фильтра со своей разметкой
Иногда не хватает возможностей стандартных типов фильтров каталога List.
С Января 2024 стало возможным создавать кастом фильтры.
Как это сделать:
В list_search в SELECT 2 указываем настройки фильтра. Необходимо указать разметку фильтра в defValue, а текущее выбранное значение в commaSelected.
TypeCode должен быть равен custom.
Пример, в котором мы используем кастом фильтр в обычным полем input[type=text]:
select 4 id,
'Some title ' title,
'' tooltip,
's1' Code,
'<input type="text" value="'+isnull((select top 1 Value from @filters where [Key] = 's1'), '')+'" />' defValue,
'custom' typeCode,
'' as commaValues,
isnull((select top 1 Value from @filters where [Key] = 's1'), '') commaSelected
Поле Code мы будем в дальнейшем использовать в JS для получения значения фильтра.
В поле defValue может быть любая разметка + обязательно в ней необходимо надо учитывать текущее значение фильтра (из коллекции @filters). Если это какой-то JS плагин, то его можно иницализировать в globalJS в подобном стиле:
$(function(){
$('.cat-filter[data-code=s1] ....').somePlugin();
});
Прописываем в globalJS 2 JS коллбека:
- getFilter - получить значение фильтра (когда жмем кнопку Искать - для фильтра типа custom будет вызываться данная JS процедура для получения его значения).
- resetFilter - сбросить значение фильтра (будет сбрасывать значение фильтра при нажатии на кропку Сбросить или Удалить тег).
Как это выглядит для нашего примера с фильтром s1:
$(function(){
as.listcallbacks= as.listcallbacks || {};
as.listcallbacks["s1_getFilter"] = function(filterCont){
var res= "";
res = $("input", filterCont).val();
return res;
}
as.listcallbacks["s1_resetFilter"] = function(filterCont){
$("input", filterCont).val('');
}
});
Примечание. Если нам необходимо выводить фильтры не в обычном порядке (через {filters} в разметке), то можем выводить их через {filter-s1}.
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги Создание каталога товаров на сайте Создание гибкого каталога с фильтрами (list) Интеграция Яндекс YML. Импорт-экспорт каталога товаров в YML Как сделать каталог List с внешней разметкой Импорт товаров через XML файлы (YML, CML и др). Интеграция с 1С Базовая верстка для каталога элементов Как провести массовую обработку картинок (качество, размеры) Проблема избыточной выборки в List и Catalog Создание сущностей для учета со своим набором полей (из editor, без SQL) Как добавить в URL каталога List псевдофильтры Каталог List. Создание кастом фильтра со своей разметкой
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта