添加img到网格列


adding img to grid column

是否可以添加一个图像(pdf打印)到网格列与点击javascript动作?如:

$g->addColumn('button','edit','Edit');

最简单的是:

$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)。