2014-01-31 106 views
1

,而我試圖證明在自定義模塊在管理網格圖像就顯示錯誤,如試圖顯示自定義模塊在管理網格圖像

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 

回答

1

答案,這是檢查渲染_prepareColumns類(路徑)功能。

例如,在我的情況下渲染類的路徑是錯誤的。檢查下面的代碼:

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

這裏renderer屬性包含渲染類的路徑,請查看它。如果此時路徑錯誤,則顯示此類型的錯誤。

2

你必須創建在Adminhtml文件夾說渲染一個塊文件,並可以創建一個文件稱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", 
       )); 
+0

剛一說明,在Image.php渲染器應該擴展'Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract' – gregdev

相關問題