Класс wAjaxGrid предназначен для отображения таблиц. Данные на страницу передаются с помощью ajax-технологии. Подробнее о таблицах описано в п.Таблицы.
Основные параметры класса
| Параметр | Значение по умолчанию | Описание |
| q | null | wSql-объект. |
| f | null | Объект класса wPrototype. |
| _data | array() | Массив данных для таблицы. |
| sql | Sql-запрос для формирования данных таблицы. | |
| caption | Заголовок страницы. | |
| colnames | Заголовки столбцов таблицы. | |
| multiselect | 0 | Показывать ли checkbox`ы для выбора строк таблицы (для редактирования или удаления нескольких элементов). |
| pagelen | 20 | Количество строк на странице при постраничной разбивке записей. |
| max_pagelen | 500 | Максимальное количество строк на странице. |
| group_col | -1 | Номер колонки, по которой происходит группировка. |
| edit_table | Название редактируемой таблицы в sql-запросе. | |
| edit_table_alias | Псевдоним редактируемой таблицы в sql-запросе. | |
| edit_keyfield | id | Ключевое поле редактируемой таблицы в sql-запросе. |
| cardurl | Url для карточки объекта | |
| jajaxgrid | true | Подключение wajaxgrid.js. |
| jquery | true | Подключение jquery.js. |
| jqueryui | true | Подключение jqueryui.js. |
| jcontextmenu | true | Подключение contextmenu.js. |
| adding | false | Возможность добавления записей |
| editing | false | Возможность редактирования записей. |
| copying | true | Возможность копирования записей. |
| editing | false | Возможность редактирования записей. |
| deleting | false | Возможность удаления записей. |
| delete_all | true | Возможность удаления всех записей, если разрешено удаление одной записи. |
| listtable | listtable | Css-класс для всей таблицы. |
| listgroup | listgroup2 | Css-класс для строк. |
| listheader | listheader | Css-класс для строк заголовка таблицы. |
| headercol | headercol | Css-класс для заголовка ячейки. |
| listodd | listodd | Css-класс для четных строк. |
| listeven | listeven | Css-класс для нечетных строк. |
| editorinput | editorinput | Css-класс для ячейки редактирования. |
| oninsert_callback | Добавление javascript callback функции. | |
| visible | true | Печатать ли на странице таблицу. |
| func_on_empty | true | При задании функции для всей колонки возможность включать функцию для строк с пустым значением. |
| popup_script | false | Подключение popupWindow.js |
| print_summary | false | Печать итоговой информации по колонкам |
| editonid | true | Возможность открыть форму редактирования объекта при клике на колонке Код (ID) объекта. |
| debug | false | Сохранение текста sql-запроса в системные сообщения. |
| delimiter | , | Разделитель полей для csv-формата. |
| _caption_cells | array() | Дополнительные ячейки в заголовке таблицы. |
| multiadding | true | Возможность не закрывать окно после добавления объекта. |
| readonlyform | false | Режим чтения. Не показывается кнопка редактирования при обновлении записи. |
| simplegrid | false | Режим простой таблицы. Показывается только таблица и пагинатор. Не показываются дополнительные меню, ячейки заголовка и т.д. |
| show_reload | true | Отображение кнопки перезагрузки. |
| mess | Сообщение, которое может быть напечатано в заголовке таблицы. | |
| onopendialog | Название Callback-функции, которая вызывается при открытии диалогового окна. | |
| onclosedialog | Название Callback-функции, которая вызывается при закрытии диалогового окна. | |
| data_numrows | 0 | Размер массива данных для таблицы. |
Описание методов
show()
public function addData($val)
Отображение таблицы. Простой пример отображения таблицы объектов (код необходимо поместить или в контролер, или в представление).
$this->parser->addCss('main/styles/wad-er.css');
$fn = __FILE__;
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$w = new wAjaxGrid();
$w->container = 'ajaxgrid_simplegriddb';
$w->pagelen = 5;
$w->caption = $this->parser->gt('Objects_list', $fn);
// Set sql
$w->q->select('c.objid', $this->parser->gt('id', $fn));
$w->q->lselect('c.name', $this->parser->gt('name', $fn));
$w->q->select('c.description', $this->parser->gt('continent', $fn));
$w->q->from('sys_objects c');
$w->q->orderby('c.objid');
// Print the grid
$w->show();
addData()
public function addData($val)
Добавление данных к набору данных таблицы.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$w = new wAjaxGrid();
$w->cols = 3; //данные будут в 3-х колонках
$w->rows = 10; //по 10 строк на странице
$w->addData('name');
$w->addData('name1');
$w->addData('name2');
$w->show();
addCard()
public function addCard($col = 0, $idcol = 0, $url = '', $pars = '')
Добавляет карточку объекта к указанной колонке. Пример добавления карточки объекта к колонке «Название»:
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$f = new wAjaxGrid ();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
$f->addCard($name_col, 0, $parser->makeUrl('sys_object_form'));
$f->show();
addRow()
public function addRow($cols = '', $style = '')
Добавление дополнительной строки к таблице.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$f = new wAjaxGrid ();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
$f->addRow('addRow');
$f->show();
addHidden()
public function addHidden($name = '', $val = '')
Добавляет скрытое поле к таблице.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$w = new wAjaxGrid ();
//…
$w->addHidden('name_hidden','value_hidden');
$w->show();
В результате работы этого примера в таблице появляется дополнительный html-код:
addCell()
public function addCell($text = '', $align = '')
Добавляет дополнительную ячейку в заголовок таблицы.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$w = new wAjaxGrid ();
//…
$w->addCell('Data');
$w->show();
addContextMenu()
public function addContextMenu($name = '',$action = '', $querystring = '', $to_end = true)
Добавляет в контекстное меню элемента новый пункт.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$w = new wAjaxGrid ();
//…
$w->addContextMenu($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addMainMenu0()
public function addMainMenu0($name = '', $action = '', $querystring = '')
Добавление элемента в меню (0 уровень) над списком.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxgrid.class.php');
$w = new wAjaxGrid ();
//…
$w->addMainMenu0($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addMainMenu1()
public function addMainMenu1($name = '', $action = '', $querystring = '')
Добавление элемента в меню (1 уровень) над списком.
$w = wAjaxGrid();
//…
$w->addMainMenu1($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addMainMenu2()
public function addMainMenu2($name = '', $action = '', $querystring = '')
Добавление элемента в меню (2 уровень) над списком.
$w = wAjaxGrid();
//…
$w->addMainMenu2($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addSearchField()
public function addSearchField($name = '', $label = '', $pars = 's')
Добавляет поле для поиска.
$w = wAjaxGrid();
//…
$w-> addSearchField ('year',$parser->gt('year'));
$w->show();
laddSearchField()
public function laddSearchField($name = '', $label = '')
Добавляет мультиязычное поле для поиска.
$w = wAjaxGrid();
//…
$w-> laddSearchField ('year',$parser->gt('year'));
$w->show();
printSummary()
public function printSummary()
Добавление итоговой информации по колонкам.
$w = wAjaxGrid(); //… $w-> printSummary (); $w->show();
setRowclass()
public function setRowclass($rs)
Устанавливает css-класс для строки.
$w = wAjaxGrid(); //… $w-> printSummary (); $w->show();