Magento网格->addColumn字符串长度
-
12-12-2019 - |
题
我试图在客户网格中显示客户首字母而不是全名。即。而不是"约翰*米德*史密斯先生",我想"J*M*史密斯先生"
任何人都可以指出我正确的方向来改变这一点吗:
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'index' => 'firstname',
));
只是得到第一个字符 firstname
谢谢:-)
解决方案
您可以为此使用自己的渲染器。请参阅示例:
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'renderer' => 'amexample/adminhtml_customer_grid_renderer_name',
....
));
渲染器类:
class Amasty_Example_Block_Adminhtml_Customer_Grid_Renderer_Name extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
return substr($row->getFirstname(), 0, 1);
}
}
您可以在此处找到默认渲染器:
app\code\core\Mage\Adminhtml\Block\Widget\Grid\Column
enderer
其他提示
步骤一: 您必须复盖本地文件夹中的文件或只是复制 app\code\core\Mage\Adminhtml\Block\Customer\Grid.php
到 app\code\local\Mage\Adminhtml\Block\Customer\Grid.php
第二步: 将下面的代码替换为
$this->addColumn('name', array(
'header' => Mage::helper('customer')->__('Name'),
'index' => 'name'
));
替换为
$this->addColumn('namewithprifx', array(
'header' => Mage::helper('customer')->__('First Name'),
'index' => 'firstname',
'type' => 'text',
'width' => '250px',
'sortable' =>false,
'filter' => false,
'renderer' => 'NameSpace_Customergrid_Block_Adminhtml_Renderer_Namewithprifx',
));
第三步: 在 NameSpace\Customergrid\Block\Adminhtml\Renderer\Namewithprifx.php
第四步: 复制下面的代码。
<?php
class NameSpace_Customergrid_Block_Adminhtml_Renderer_Namewithprifx extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
//$getData = $row->getData();
$str=$row->getData('prefix'). " ". $row->getData('fname'). " ". $row->getData('lname');
return $str;
}
}
第五步: 刷新缓存并检查数据。