Drag n drop сортировка строк в таблице. Как перетащить строку в таблице

Устанавливаем в SELECT 3 параметр Sortable = 1, а также добавляем ручку для переноса (если ее нет, то переносить строку можно за любую часть строки):

<i class="fa fa-bars as-table-sortHandle"></i>

 Процедура GetItem: 

CREATE PROCEDURE [dbo].[crud_watch_sortableTable_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 @filterItemID nvarchar(128)
	select @filterItemID = try_cast(Value as int) from @filters where [Key] = 'itemID'
	
	insert into @ids
	select id
	from tst_customers
	where (isnull(@filterItemID, 0)= 0 or id = @filterItemID)
	
	-- SELECT 1
	select 
		id id,
		isnull(name, '') name,       
		isnull(fio, '') fio,
        (select count(*) from tst_orders where customerID = c.id) orders   , 
        '<i class="fa fa-bars as-table-sortHandle"></i>' handle
	from tst_customers c
	where id in (select id from @ids)
	order by ord
	OFFSET @PageSize * (@Page - 1) ROWS
	FETCH NEXT @PageSize ROWS ONLY;
	
	-- SELECT 2
	select count(*) from @ids	

	-- SELECT 3
	Select  '  ' Title, 1 HideTitleCount, 1 Sortable
END

Изменения значений в базе происходят через процедуру UpdateField: 

CREATE PROCEDURE [dbo].[crud_watch_sortableTable_updateField]
	@itemID int,
	@field nvarchar(64),
	@value nvarchar(max),
	@username nvarchar(64)
AS
BEGIN
if(@field = 'sortable') begin
	-- pk - table itemID
    -- value -  comma separated rowIDs 
	
    declare @t table(id int, num int)

    insert into @t 
    select  try_cast(Value as int), num  
    from dbo.split(@value, ',')
    where isnull(Value, '')<>''
	-- get minimal ord value
    declare @minOrd int 
    set @minOrd = isnull((select min(ord) from tst_customers where id in (select id from @t)) , 0)
	-- change ord column
    update tst_customers 
    set ord = @minOrd  + isnull( (select top 1 num-1 from @t where id =tst_customers.id ), 0)
    where id in (select id from @t)
    
    select 'OK' Msg, 1 Result
	
   
end else begin 
	select 'Невалидный код свойства' Msg, 0 Result
	return 
end  
select '' Msg, 1 Result	

END

Ссылка на документацию: https://falcon.web-automation.ru/docs/sortirovka-strok-v-tablice

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

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

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

Пробы разных диаграмм

Визуализация 02.08.2023

Платформа Falcon Space

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

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

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

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

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

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

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