尝试在自定义模块中的管理网格中显示图像

时间:2014-01-31 06:40:58

标签: image magento grid admin

当我尝试在自定义模块中的管理网格中显示图像时,它显示错误,如

Fatal error: Call to a member function setColumn() on a non-object in D:\Program Files\wamp\www\magento\app\code\core\Mage\Adminhtml\Block\Widget\Grid\Column.php on line 291

2 个答案:

答案 0 :(得分:2)

您必须在Adminhtml Folder Say Renderer中创建一个Block File,并且您可以创建一个文件调用Image.php

在该文件中写一个函数

public function render(Varien_Object $row){
        $mediaurl=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
        $value = $row->getData($this->getColumn()->getIndex());
        return '<p style="text-align:center;padding-top:10px;"><img src="'.$mediaurl.DS.$value.'"  style="width:100px;height:200px;text-align:center;"/></p>';
    }

在grid.php中调用此函数

$this->addColumn("thumbnailimage", array(
                "header" => Mage::helper("modulename")->__("Image"),
                "index" => "thumbnailimage",
                "renderer" =>"Companyname_Modulename_Block_Adminhtml_Renderer_Image",
                ));

答案 1 :(得分:1)

回答这个问题是检查_prepareColumns()函数中渲染类的路径。

例如,在我的例子中,render类的路径是错误的。检查以下代码:

$this->addColumn('img', array(
            'header' => 'Image',
            'align' => 'left',
            'index' => 'img',
            'width'     => '70',
            'renderer' => 'demo/adminhtml_grid_renderer_img'
        ));

此处,renderer属性保存渲染类的路径,进行查看。如果此时路径错误,则会显示此类错误。