1

刚开始使用ATK4,到目前为止非常欣赏它,但不知道如何做到这一点......

我要完成的工作:

我将查询结果输出到网格,其中一个字段是“状态”,数据将是“-1”或“1”。我如何输出一个 HTML 片段(或任何我需要得到我想要的东西)而不是输出 -1 或 1 到列,而不是为每个值显示不同的图标?简而言之:

在“状态”列中:

  • 如果值为-1,则显示iconDown.gif;
  • 如果值为 1,则显示 iconUp.gif

到目前为止的代码:

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 );
    }

}

任何指示/提示?

4

1 回答 1

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图标源 URL 是动态生成的,它将在名为icon_object_XXX.png的目录中搜索图像文件,其中XXX值将从字段type值中获取。

在我的情况下type是这样的:array('building','apartment','land','garage')等。

还有一件事——你应该尽可能开始使用模型!这样,当您的项目变得更大时,您的生活就会变得轻松。也可以与他们有额外的安全性(条件等)。

于 2013-02-08T12:35:43.777 回答