刚开始使用ATK4并非常欣赏它,但不知道如何做到这一点......
我想要完成的任务:
我将查询的结果输出到网格,其中一个字段是'status',数据将是'-1'或'1'。 我不是输出-1或1到列,而是如何输出HTML片段(或我需要的任何东西来获得我想要的东西),而不是为每个值显示不同的图标? 简而言之:
在列'状态'中:
代码:
class page_showlist extends Page {
function init(){
parent::init();
$q=$this->api->db->dsql();
$q->table('remote_system')
->join('customers.id','customer_id')
->field('customer_id')
->field('ip')
->field('nickname')
->field('name','customers')
->field('status')
;
$grid = $this->add('Grid');
$grid->addColumn('text','status')->makeSortable();
$grid->addColumn('text','name')->makeSortable();
$grid->addColumn('text','ip');
$grid->addColumn('text','nickname');
$grid->addButton('Reload Grid')->js('click',$grid->js()->reload());
$grid->addQuickSearch(array('name'));
$grid->setSource( $q );
}
}
任何指针/提示?
答案 0 :(得分:1)
要在网格中添加带图标的列,您可以使用自定义模板。
在我的一个项目中,我喜欢这样:
$url = $this->api->pm->base_url . $this->api->locateURL('template', 'images/');
$grid->addColumn('template', 'type', false)
->setTemplate('<img src="' . $url . 'icon_object_<?$type?>.png">');
它将使用名为type
的模型字段(在您的情况下使用status
)并在该列中显示图标。图标来源网址是动态生成的,它会在template/images
目录中搜索名为 icon_object_XXX.png 的图像文件,其中 XXX 值将从字段{{ 1}}值。
在我的情况下type
是这样的:type
等。
还有一件事 - 你应该尽可能地开始使用模型!这样,当您的项目变得更大时,您将会放松生活。也可以使用它们获得额外的安全性(条件等)。