Класс wGrid служит для отображения таблиц. В отличие от wAjaxGrid (см.wAjaxGrid), для отображения данных здесь не используется ajax-технология.
Основные параметры класса
Параметр | Значение по умолчанию | Описание |
debug | false | Включение дебаг-режима. Сохранение текста sql-запроса в системные сообщения. |
q | null | wSql-объект. |
f | null | Объект класса wPrototype. |
_data | array() | Массив данных для таблицы. |
sql | Sql-запрос для формирования данных таблицы. | |
cols | 4 | Количество колонок. |
rows | 4 | Количество строк на странице. |
pagelen | 20 | Количество строк на странице при постраничной разбивке записей. |
group_col | -1 | Номер колонки, по которой происходит группировка. |
table_chunk | sys_chunks_gallery_table | Чанк (html-код, шаблон) для отображения таблицы. |
cell_chunk | sys_chunks_gallery_cell | Чанк (html-код, шаблон) для отображения ячейки таблицы. |
group_chunk | sys_chunks_gallery_group | Чанк (html-код, шаблон) для отображения группы. |
edit_table | Название редактируемой таблицы в БД. | |
edit_keyfield | id | Ключевое поле редактируемой таблицы в БД. |
empty_mess | Сообщение, если набор данных для таблицы пустой. | |
showpaginator | true | Постраничная навигация строк. |
addpost_script | true | Добавление скрипта для отправления формы. |
maxrecords | Максимальное количество отображаемых элементов. | |
paginator_url | Url для ссылок постраничного навигатора. | |
emtpy | false | Индикатор пустого набора данных. |
Описание методов
addHidden()
public function addHidden($name = '', $val = '')
Добавляет скрытое поле к форме.
$parser->addCss('main/styles/wad-er.css'); include_once(SYS_BASE_PATH.'main/classes/wgrid.class.php'); $w = new wGrid(); $w->cols = 3; //данные будут в 3-х колонках $w->rows = 10; //по 10 строк на странице $w->q->select('c.objid', $ parser->gt('id', $fn)); $w->q->lselect('c.name', $parser->gt('name', $fn)); $w->q->select('c.description', $parser->gt('continent', $fn)); $w->q->from('sys_objects c'); $w->q->orderby('c.objid'); $w->addHidden('name_hidden','value_hidden'); $w->show();
В результате работы этого примера в форме появляется дополнительный html-код:
< input id="name_hidden" name="name_hidden" value="value_hidden" type="hidden">
addData()
public function addData($val)
Добавление данных к набору данных таблицы.
$parser->addCss('main/styles/wad-er.css'); include_once(SYS_BASE_PATH.'main/classes/wgrid.class.php'); $w = new wGrid(); $w->cols = 3; //данные будут в 3-х колонках $w->rows = 10; //по 10 строк на странице $w->addData('name'); $w->addData('name1'); $w->addData('name2'); $w->show();
makeCell()
public function makeCell($id = '', $data = '', $rs = null)
Формирование содержимого ячейки. Метод может переопределяться в дочернем классе.
Отобразим в списке объектов ссылки на страницы (вместо стандартного вывода текста):
$parser->addCss('main/styles/wad-er.css'); include_once(SYS_BASE_PATH.'main/classes/wgrid.class.php'); class wContent_wGrid extends wGrid { public function makeCell($id = '', $data = '', $rs = null) { global $parser; $output = ''; $output .= "makeUrl($rs->fields[0]) . "">" . $rs->fields[1] . ""; return $output; } } $w = new wContent_wGrid(); $w->cols = 3; //данные будут в 3-х колонках $w->rows = 10; //по 10 строк на странице $w->q->select('c.objid', $parser->gt('id', $fn)); $w->q->lselect('c.name', $parser->gt('name', $fn)); $w->q->select('c.description', $parser->gt('continent', $fn)); $w->q->from('sys_objects c'); $w->q->where("c.objtype='sys_elements_pages'"); $w->q->orderby('c.objid'); $w->show();
show()
public function show($print = true)
Отображение таблицы.
$parser->addCss('main/styles/wad-er.css'); include_once(SYS_BASE_PATH.'main/classes/wgrid.class.php'); $w = new wGrid(); $w->cols = 3; //данные будут представлены в 3-х колонках $w->rows = 10; //по 10 строк на странице $w->q->select('c.objid', $parser->gt('id', $fn)); $w->q->lselect('c.name', $parser->gt('name', $fn)); $w->q->select('c.description', $parser->gt('continent', $fn)); $w->q->from('sys_objects c'); $w->q->orderby('c.objid'); $w->show();