Класс 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();