JQ: Рендеринг грида
Рендеринг грида
В шаблоне tpl грид создается следующим образом (на примере jq_return):
<script> {$jq_loader->render('jq_return')} {literal} autowidth: true, height: 430, rowNum: 50, caption: 'Возврат средств', scroll: 1, gridComplete: function(){ gridHighlight('#jq_return'); } }); $grid.jqGrid('navGrid', pager,{add: false, edit: false, del: true, deltext:'Удалить', refresh:true, refreshtext: 'Обновить', search:false});
Объект $jq_loader - это "фабрика" гридов. Она всегда присутствует в темплейтах.
Метод render подгружает класс грида из текущей секции (?section=xxx) с именем, указанным в аргументе, и рендерит необходимый HTML-код и "верхушку" JS-объекта.
В нее входит:
- colModel
- colNames
- pager
- url
- editurl
- cellurl
Это то, что можно сгенерировать автоматически.
Также определяются переменные:
$grid - объект jQuery с последним созданным гридом. Специально для любителей копи-пасты.) Если гридов несколько, то эту переменную можно использовать на этапе инициализации кнопочек и тулбаров, но нельзя использовать в событиях. Если грид один - можно использовать везде.
$jq_return - переменная с именем, аналогичным id грида. Используется в тех случаях, когда гридов несколько.
Не надо писать селекторы по сто раз! Пользуйтесь переменными.
Несколько однотипных гридов
Если грид один и тот же должен повторяться несколько раз на одном экране, следует использовать второй необязательный аргумент функции render - $suffix.
Например:
{$jq_loader->render('jq_cats', 1)} ... {$jq_loader->render('jq_cats', 2)}
Будет создано два грида - $jq_cats1 и $jq_cats2. Но они будут работать с единым классом jq_cats.
0 комментариев
Рекомендуемые комментарии
Комментариев для отображения не найдено.