Самым простым будет:
$g->addColumn('template','pdf_print')
->setTemplate('<a href="'.
$this->api->getDestinationURL('pdfprint').
'?id=<?$id?>"><img src="printicon.png"></a>');
Альтернативный подход - определить свой собственный форматер.Я также показываю, как вы можете добавить глобальный обработчик javascript в столбец, но при этом передать «id» записи.
function format_pdfbutton($column){
$this->current_row[$column]=
'<img src="printicon.png" class="print_'.$column.'"/>';
}
function init_pdfbutton($column){
$this->js('click')->selector('.print_'.$column)->frameURL('Print Frame',
array(
$this->api->getDestinationURL('print'),
'id='>$this->js()->_selectorThis()->closest('tr')->attr('del')
));
}
$g->addColumn('pdfbutton','print_my_pdf');
Я не проверял код выше, но вы также можете посмотретьв источнике "Grid" и как определяются обычные кнопки (Grid :: format_button, Grid :: init_button).