Сохранение фильтров таблицы - запоминание прежнего выбора фильтров
В этом примере продемонстрирована возможность сохранять или не сохранять настройки фильтров и сортировки в таблице при обновлении страницы.
Для этого мы:
- создали две одинаковые таблицы с полями, фильтрами и сортировкой
- в GetItem в SELECT3 для первой задали параметр DisableSaveState равным 0 (по умолчанию), включив сохранение параметров.
- в GetItem в SELECT3 для второй задали параметр DisableSaveState равным 1, отключив сохранение параметров.
- действие будет видно, если вы измените фильтры/сортировку в каждой из них и обновите страницу
CREATE PROCEDURE [dbo].[crud_watch_nostate0_getItems]
@filters CRUDFilterParameter READONLY,
@sort sql_variant,
@direction nvarchar(8),
@page int,
@pageSize int,
@username nvarchar(32)
AS
BEGIN
declare @filterName nvarchar(max); select @filterName = Value from @filters where [Key] = 'name'
declare @filterValue int; select @filterValue = try_cast(Value as int) from @filters where [Key] = 'value'
declare @ids table (id int)
insert @ids
select id
from tst_numfield
where (isnull(@filterName, '')='' or name like '%'+@filterName+'%')
and (isnull(@filterValue, 0)=0 or value=@filterValue)
-- SELECT 1
select *
from tst_numfield
where id in(select id from @ids)
order by
case when @sort = 'name' and @direction = 'down' then name end desc,
case when @sort = 'name' and @direction = 'up' then name end asc,
case when @sort = 'value' and @direction = 'down' then value end desc,
case when @sort = 'value' and @direction = 'up' then value end asc
OFFSET @PageSize * (@Page - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;
-- SELECT 2
select count(*) from @ids
-- SELECT 3
Select 0 DisableSaveState
END
CREATE PROCEDURE [dbo].[crud_watch_nostate2_getItems]
@filters CRUDFilterParameter READONLY,
@sort sql_variant,
@direction nvarchar(8),
@page int,
@pageSize int,
@username nvarchar(32)
AS
BEGIN
declare @filterName nvarchar(max); select @filterName = Value from @filters where [Key] = 'name'
declare @filterValue int; select @filterValue = try_cast(Value as int) from @filters where [Key] = 'value'
declare @ids table (id int)
insert @ids
select id
from tst_numfield
where (isnull(@filterName, '')='' or name like '%'+@filterName+'%')
and (isnull(@filterValue, 0)=0 or value=@filterValue)
-- SELECT 1
select *
from tst_numfield
where id in(select id from @ids)
order by
case when @sort = 'name' and @direction = 'down' then name end desc,
case when @sort = 'name' and @direction = 'up' then name end asc,
case when @sort = 'value' and @direction = 'down' then value end desc,
case when @sort = 'value' and @direction = 'up' then value end asc
OFFSET @PageSize * (@Page - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;
-- SELECT 2
select count(*) from @ids
-- SELECT 3
Select 1 DisableSaveState
END
Другие демостенды
— Настройка параметров таблицы (SELECT 3)— Визуализация процесса на сайте - отображение движения по статусам
— Заполнение формы с режимом Черновик
Что есть в базе знаний по этой теме
— Страницы. Как сделать редирект на другую страницу при загрузке— Как добавить коллбек после загрузки формы и после сохранения формы.
— Как сделать форму с сохранением состояния
— Как отключить сохранение состояния таблицы (фильтры)
— Как сохранить значение поля в браузере, чтобы каждый раз его не вбивать при загрузке (оставлять последнее сохраненное). Запоминание поля формы в браузере
Последние обновления
Интеграции 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
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства