Skip to content

w2regrid

do- edited this page Nov 11, 2020 · 13 revisions

$(...).w2regrid (...) - лёгкая обёртка над $(...).w2grid (...), с теми же параметрами.

Отличия:

  • если на текущей странице уже есть таблица с таким именем - удаляет её во избежание конфликтов;
  • если не определена опция show.skipRecords - ставит туда false (чтобы скрыть сбивающее с толку поле ввода в стандартном меню при таблице);
  • принимается во внимание дополнительная опция src, значение которой — либо строка, либо массив:
    • если src — строка, то считается, что она содержит основные параметры в формате type[/part/id] и из неё формируется соответствующий url=/back?type=${type}[&id=${id}&part=${part}];
    • если массив, то его первый элемент порождает url по вышеописанным правилам, а второй копируется в postData;
  • если определена опция url (то есть таблица динамическая — в частности, в силу указанного src), а onLoad пусто, то туда подставляется dia2w2ui;
  • если не определён $_REQUEST.id (то есть таблица расположена на экране-реестре) и отсутствует опция onDblClick, туда проставляется обработчик, который открывает URL /$_REQUEST.type/{uuid} (карточка того же типа, что реестр;
  • если в описании колонки задан параметр voc, значением которого является js-объект (в норме — созданный add_vocabularies), то функция render определяется таким образом, чтобы использовать его в качестве словаря данных. Например:
 {field: "id_role", caption: "Роль", voc: data.roles}

вместо

 {field: "id_role", caption: "Роль", render: function (i) {return data.roles [i.id_role] }}

Пустые значения (null, undefined) преобразуются в voc ['']. То есть если необходимо отображать неопределённое значение в виде специфической надписи, её следует прописать в словарь с ключом ''. В противном случае (по умолчанию) пустые значения выглядят пустыми строками.

Если значение поля является массивом id (то есть поле многозначное и на форме ввода ему соответствует enum), то текст формируется тоже по словарю; строки сортируются и склеиваются через запятую.

Параметр voc можно использовать и в качестве источника данных для редактируемых полей:

 {field: "id_role", caption: "Роль", voc: data.roles, editable: {type: 'list'}} // items вычисляется автоматически

Аналогично указывается и словарь опций для полей расширенного поиска типа list и enum:

 searches: [
  {field: 'id_org', caption: 'Организация', type: 'enum', voc: data.orgs},
 ],
Clone this wiki locally