Фильтр выбор с поиском по базе в таблице (select-search)
Фильтр с поиском select-search
Ставим у колонки тип фильтра select-search (название Search) и создаем процедуру (код колонки в примере - f1):
CREATE PROCEDURE [dbo].[crud_watch_table_selectsearch_f1_search]
@q nvarchar(32),
@itemID nvarchar(32),
@username nvarchar(32)
as
begin
select -1 id, 'Сбросить выбор' text, '' [desc], '#ccc'color , 0 ord
union
select top 10 id id, name text, cast(price as nvarchar) [desc], '#daa'color , id ord
from tst_products
where name like '%'+@q+'%'
order by ord
end
Входные параметры:
- q - что ввел пользователь
- itemID - itemID от таблицы
- username - текущий пользователь
Выходная модель: id (не равен нулю), text, desc, color
В GetItems приходит текстовое значение выбраного поля:
CREATE PROCEDURE [dbo].[crud_watch_table_selectsearch_getItems]
@filters CRUDFilterParameter READONLY,
@sort sql_variant,
@direction nvarchar(8),
@page int,
@pageSize int,
@username nvarchar(32)
AS
BEGIN
declare @ids TABLE (id int)
-- filters...
declare @f1 nvarchar(128) = isnull((select Value from @filters where [Key] = 'f1'), '')
print @f1
if(@f1='Сбросить выбор') begin
set @f1 = ''
end
print @f1
insert into @ids
select id
from tst_products
where @f1 ='' or @f1<>'' and name = @f1
-- SELECT 1
select id id,
isnull(name, '') name,
isnull(price, 0)price,
isnull(art, '') art,
isnull(format(created, 'dd.MM.yyyy'), '01.01.1900') created
from tst_products
where id in (select id from @ids)
order by id
OFFSET @PageSize * (@Page - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;
-- SELECT 2
select count(*) from @ids
-- SELECT 3
Select 1
END
Обратите внимание на обработку момента с пунктом Сбросить выбор - если этого не сделать, то пользователь не сможет вернуть фильтр в исходное невыбранное значение.
Другие демостенды
— Генерация текста по API через сервис fish-text— Вывод диаграммы по дням из данных таблицы
— Календарь в личном кабинете
— Таблица - навигация по ячейкам таблицы с помощью стрелок клавиатуры. Аналог Excel таблицы на сайте
— Сохранение поля select-search
Что есть в базе знаний по этой теме
— Как убрать показ количества строк результата в заголовке таблицы?— Как делать различный набор столбцов одной таблицы для разных ролей
— Поле Список поиска значения (autocomplete, search-select)
— Как добавить новый элемент, если в списке на форме его нет
— Как настроить меню на смартфонах снизу экрана
— Управление настройками поля через options_ поля
Последние обновления
Интеграции 24.11.2025
Разное 24.11.2025
Форма 15.11.2025
Визуализация 02.11.2025
Таблица 08.10.2025
Форма 26.09.2025
Таблица 23.09.2025
Разное 23.08.2025
Таблица 21.08.2025
Форма 20.08.2025
Таблица 18.08.2025
Таблица 21.06.2025
Форма 07.06.2025
Форма 29.03.2025
Форма 17.02.2025
Файлы и документы 10.01.2025
Форма 01.11.2024
Форма 23.10.2024
SQL-инструмент для создания личных кабинетов на сайте
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства