Как сделать зависимые фильтры в таблице на сайте
В этом примере мы реализовали показ таблицы с зависимыми фильтрами.
Для этого мы:
- создали таблицу
- добавили необходимые колонки (id, country, city, product, created, price)
- для полей country, city реализовали процедуру dict
- настроили процедуру GetItem
CREATE PROCEDURE [dbo].[crud_watch_dependentFilters_country_dict]
@tableCode nvarchar(32),
@col nvarchar(32),
@username nvarchar(32)
as
begin
select id Value, name Text
from tst_regions where parentID is null
end
CREATE PROCEDURE [dbo].[crud_watch_dependentFilters_city_dict]
@tableCode nvarchar(32),
@col nvarchar(32),
@username nvarchar(32),
@parameters ExtendedDictionaryParameter readonly,
@filters CRUDFilterParameter readonly
as
begin
declare @country int
select @country = try_cast(Value as int) from @filters where [Key]='country'
select id Value, name Text
from tst_regions
where parentID is not null
and (isnull(@country, 0) = 0 or parentID = @country)
end
CREATE PROCEDURE [dbo].[crud_watch_dependentFilters_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 @filterCountry int, @filterCity int
select @filterCountry = try_cast(Value as int) from @filters where [Key] = 'country'
select @filterCity = try_cast(Value as int) from @filters where [Key] = 'city'
insert into @ids
select id
from tst_orders
where isnull(@filterCountry, 0) = 0 or regionID in (select id from tst_regions where parentID = @filterCountry)
and isnull(@filterCity, 0) = 0 or regionID = @filterCity
-- SELECT 1
select
id id,
(select name from tst_regions where id = (select parentID from tst_regions where id = regionID)) country,
isnull((select name from tst_regions where id = regionID), '') city,
(select name from tst_products where id = productID) product,
isnull(FORMAT(created, 'dd.MM.yyyy'), '01.01.1900') created,
isnull(price, 0) price
from tst_orders
where id in (select id from @ids)
order by
case when @sort = '' then created end desc
OFFSET @PageSize * (@Page - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;
-- SELECT 2
select count(*) from @ids
-- SELECT 3
Select ' ' Title, 1 HideTitleCount, 1 InstantFilter
END
Другие модули
Как редактировать поля прямо в таблице на сайте
Как добавить фильтры данных таблицы в личном кабинете
Вывод таблицы на сайте в личном кабинете
Создание нового элемента в таблице на сайте
Как добавить существующий элемент в таблицу через поле поиска
Как создать вложенные таблицы на сайте
Стилизация полей таблицы. Как улучшить дизайн таблиц на сайте
Последние обновления
Форма 01.11.2024
Форма 23.10.2024
Форма 13.08.2024
Таблица 03.06.2024
Таблица 23.09.2023
15.09.2023
Визуализация 02.08.2023
Визуализация 02.08.2023
Визуализация 01.08.2023
Таблица 18.03.2023
Форма 19.12.2022
Таблица 06.12.2022
Форма 01.12.2022
Форма 21.11.2022
Форма 17.11.2022
Форма 10.11.2022
Таблица 16.09.2022
Разное 14.09.2022
Таблица 09.09.2022
SQL-инструмент для создания личных кабинетов на сайте
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства