Полный и компактный вид таблицы на сайте в личном кабинете

В примере реализована возможность переключения на компактный режим просмотра таблицы. 

Это актуально в 2 случаях: 

  • когда в таблице много данных (но при обычной работе они не нужны в большинстве случаев).
  • когда подгрузка множества данных в таблице замедляет загрузку таблицы в целом, т.е. при компактном режиме загрузка идет значительно быстрее. 

Как реализовать: 

1. Добавляем колонку compact (в фильтре ставим тип Переключатель)

2. Делаем обработку фильтра в GetItems. Если колонку не нужно выводить в компактном виде, то выводим NULL

CREATE PROCEDURE [dbo].[crud_watch_compactTable_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 @filterName nvarchar(128)
	select @filterName = Value from @filters where [Key] = 'name'
	
    declare @compact bit
	select @compact = try_cast(Value as bit) from @filters where [Key] = 'compact'
	    
	insert into @ids
	select id
	from tst_orders
	
	-- SELECT 1
	select 
		o.id id,
		c.name customer,
       	iif(@compact=1, '', c.fio) desc_customer,
        'fas fa-user' icon_customer,
        (select name from  tst_products where id = productID) product,
       iif(@compact=1, '', ' Некая разметка формы ') modal_product,
		FORMAT(created, 'dd.MM.yyyy') created,
        'Время - 12:05' dropdown_created,
        'blue' color_created,
		(select name from tst_statuses where id = o.statusID) as status,
        'purple' marker_status,
        ' заказ' suffix_status,
		iif(@compact=1, NULL, isnull([price], 0)) price, 
        '1000' prev_price,
        'green' prevcolor_price,
        '1000' barPercent_price,
        'success' barClass_price,
        'lavender' color, 
        iif(@compact=1, NULL, 'Данные по колонке 1') col1,
        iif(@compact=1, NULL, 'Данные по колонке 2') col2
        
	from tst_orders o
    join tst_customers c on c.id = o.customerID
	where o.id in (select id from @ids)
	order by  
        case when @sort = ''  then created end desc,
		case when @sort = 'name' and @direction = 'down' then name end desc,
		case when @sort = 'name' and @direction = 'up' then name end asc
	OFFSET @PageSize * (@Page - 1) ROWS
	FETCH NEXT @PageSize ROWS ONLY;
	
	-- SELECT 2
	select count(*) from @ids	

	-- SELECT 3
	Select  'h3' headerTag,  1 HideTitleCount, 
    	iif(@compact=1, 1, 0) Compact, 
        iif(@compact=1, '18px', '14px') FontSize 
END

Примечание: также мы применили режим compact и к настройкам таблицы в целом (SELECT 3)

Насколько полезна эта возможность?

Другие модули

Последние обновления

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Сайт использует Cookie. Правила конфиденциальности OK