ListView - Список/Таблица
Компонент для отрисовки массива объектов в виде списка или таблицы
new ListView(parent)
Конструктор принимает указатель на DOM-элемент родитель, в который должен встроиться экземпляр списка. Указатель на родителя и указатель на элемент-контейнер списка запоминаются на экземпляр как this.parent
и this.el
.
Методы экземпляра
.render()
Строит все элементы списка в родителе из предоставленных данных согласно текущему режиму отображения, фильтрации, сортировке и прочим настройкам вывода, установленным остальными методами.
.useData(items)
Принимает и запоминает данные для вывода. Значения свойств объектов могут быть в формате html-строки, и в таком случае они вставляются в соответствующие ячейки с учётом результирующей разметки.
.getData()
Возвращает последние данные, предоставленные списку для вывода.
.getListedData()
Возвращает данные, прошедшие фильтрацию и сортировку.
.filter(testFn)
Принимает и запоминает функцию для фильтрации данных для вывода.
.sort(compareFn)
Принимает и запоминает функцию для сортировки данных для вывода.
.reverseSort(on)
Принимает true
/ false
, чтобы включить / выключить обратную сортировку.
.isReversed()
Возвращает true
/ false
, если обратная сортировка включена / выключена.
.setPropColumns(headers)
Принимает и запоминает словарь вида {propKey: columnHeader, ...}
и запоминает его для вывода в заголовках колонок вместо самих имеy свойств.
.selectProps(keys)
Принимает и запоминает массив имён свойств, данные из которых нужно выводить.
.setTableMode()
Меняет режим отображения на табличный - с линиями, колонками, заголовками, ячейками, закреплением первых ряда и колонки.
.setListMode()
Меняет режим отображения на список - со стопкой горизонтальных блоков с данными.
.getCurrentMode()
Возвращает название текущего режима.
.setPageSizeLimit(count)
Принимает целое число и запоминает его в качестве ограничения количества записей на странице.
.getPageSizeLimit()
Возвращает текущее максимальное количество записей на странице.
.gotoPage(index)
Показывает элементы страницы с указанным индексом.
.getPageIndex()
Возвращает индекс текущей страницы.
.getPageData()
Возвращает объекты, данные которых выводятся на текущей странице.
.useItemClickHandler(fn)
Принимает и запоминает функцию-обработчик клика на одной из записей. В эту функцию будет передаваться объект, из которого брались данные этой записи, индекс записи в списке и имя свойства, значение которого выводится в колонке, в которой случился клик.
.useColumnClickHandler(fn)
Принимает и запоминает функцию-обработчик клика на заголовке колонки. В эту функцию будет передаваться имя свойства, значения которого выводятся в колонке, на заголовке которой случился клик.
.activateItem(index_or_findFn)
Если передано целое число, делает активной запись в списке по соответствующему индексу. Если передана функция-предикат, делает активной запись, соответствующую объекту, найденному этой функцией в массиве данных.
.deactivateItem()
Делает активную запись неактивной (она просто перестаёт быть выбранной курсором).
.getActiveItem()
Возвращает объект, из которого брались данные активной записи. Если активной записи нет, возвращает null
.
.getActiveItemIndex()
Возвращает индекс активной записи в списке или -1, если таковой нет.
.selectItems(indices_or_testFn)
Если передан массив целых чисел, делает выбранными записи с указанными индексами. Если передана функция-предикат, делает выбранными записи, соответствующие объектам, найденным этой функцией в массиве данных. Если аргумент не передан, делает выбранными все записи.
.unselectItems(indices_or_testFn)
Если передан массив целых чисел, делает невыбранными записи с указанными индексами. Если передана функция-предикат, делает невыбранными записи, соответствующие объектам, найденным этой функцией в массиве данных. Если аргумент не передан, делает невыбранными все записи.
.getSelectedItems()
Возвращает массив объектов данных, из которых в списке строились выбранные записи.
.getSelectedItemsIndises()
Возвращает массив индексов выбранных записей.
Базовый дизайн
Что-то вроде этого нужно показывать в режиме listMode
.

Что-то вроде этого нужно показывать в режиме tableMode
.
