解決策を探している人のために。Inchoo Webサイトでこのチュートリアルを使用しました:Magentoグリッドのカスタム列にカスタムレンダラーを追加します。解決策を理解するのにも役立ついくつかのSOの質問があります。
最初に必要だったように行全体の背景色を変更することはできませんでした。セルの背景を変更するだけです。しかし、最後に、この行が多少異なることをユーザーに示すのに十分です。私が行ったことは、新しいカスタム列を追加することでした。プロパティで、renderer
新しいクラスを参照しました。
$this->addColumn('collision_type', array(
'header' => $helper->__('Collision'),
'align' => 'center',
'index' => 'collision_type',
'type' => 'action',
'renderer'=> new Dts_Banners_Block_Adminhtml_Collisions_Grid_Renderer_Collisiontype(),
));
必要なクラスを新しいサブツリー内に配置しました。
Grid
└─ Renderer
└─ Collisiontype.php
そして、これは列をレンダリングする必要がある新しいクラスです。異なる色を使用するには、変数を評価し$value
、対応する値に異なる色のスタイルを適用する必要があります。これが現在行っていることです。
<?php
class Dts_Banners_Block_Adminhtml_Collisions_Grid_Renderer_Collisiontype extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row) {
$value = $row->getData($this->getColumn()->getIndex());
return '<div style="color:#FFF;font-weight:bold;background:#F55804;border-radius:8px;width:100%">'.$value.'</div>';
}
}
?>
そして結果: