Как сделать таблицу в личном кабинете с кастом выводом через JS
Специальный режим таблицы viewType=custom. В этом случае не выводится таблица или какой-то другой компонент. Данные передаются в callback GetItems и разработчик сам определяет вывод списковых данных через JS. От компонента таблица остается только заголовок и фильтры. Пагинация добавляется через вызов функции as.crud2.getPagingMakeup (см. пример ниже).
Из getItems данные передаются в виде 2 коллекций - items (SELECT 1) и footerItems (SELECT 4)
Как реализовать:
1. В select 3 ставим ViewType
CREATE PROCEDURE [dbo].[crud_watch_customViewType_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'
insert into @ids
select id
from tst_categories c
where isnull(@filterName, '')='' or name like '%'+@filterName+'%'
-- SELECT 1
select id, name, (select count(*) from tst_categoryProducts where categoryID = c.id) cnt
from tst_categories c
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
OFFSET @PageSize * (@Page - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;
-- SELECT 2
select count(*) from @ids
-- SELECT 3
Select 'h3' headerTag, 'custom' viewType
-- 4 SELECT Footer data or kanban/gantt data
select 11 x1, 12 x2
union
select 21 x1, 22 x2
END
2. Реализуем JS коллбек GetItems:
<script>
$(function(){
as.crud2callbacks["watch_customViewType_getItems"] = function(options, data){
console.log("table data", data)
var cont = options.cont;
var s = "";
for(var i = 0; i < data.items.length; i++){
var item = data.items[i];
s+= "#"+item.id + " " + item.name + " (" + item.cnt + ")<br>";
}
s+="<hr>";
if(data.footerItems){
s+="<h4>Footer items</h4>";
for(var i = 0; i < data.footerItems.length; i++){
var fi = data.footerItems[i];
for(var key in fi) {
var value = fi[key];
s += key + "=" + value+ ", "
}
s+="<br>";
}
}
s+= as.crud2.getPagingMakeup(options, 'pgClass')
cont.append(s);
}
});
</script>
Другие модули
Как редактировать поля прямо в таблице на сайте
Как добавить фильтры данных таблицы в личном кабинете
Вывод таблицы на сайте в личном кабинете
Создание нового элемента в таблице на сайте
Как добавить существующий элемент в таблицу через поле поиска
Как создать вложенные таблицы на сайте
Стилизация полей таблицы. Как улучшить дизайн таблиц на сайте
Последние обновления
Форма 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
Форма 31.07.2022
Страницы 31.07.2022
SQL-инструмент для создания личных кабинетов на сайте
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства