我的管理网格模块中的过滤器出现问题。
我的问题是:
过滤自定义渲染器不起作用的列。
public function _prepareColumns()
{
$this->addColumn('entity_id', array(
'header' => 'ID',
'index' => 'entity_id',
'width' => '30px'
));
$this->addColumn('author', array(
'header' => 'Author',
'index' => 'author',
'renderer' => 'Test_Block_Adminhtml_Vj_Renderer_Author'
));
渲染器是
class Test_Block_Adminhtml_Vj_Renderer_Author extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
$value = $row->getData($this->getColumn()->getIndex());
$autor = Mage::getModel('test/test')->load($value);
return ($author->getName() . ' ' . $author->getSurname());
}
}
网格中的作者显示良好,例如“乔治布什”,但如果我尝试写入过滤器(例如“Bu”)过滤器返回零行。 :-/
任何想法?
谢谢。
这篇文章可能会有所帮助...http://www.atwix.com/magento/grid-filter-for-columns/ http://www.atwix.com/magento/grid-filter-for-columns/
在对自定义字段的 addColumn() 调用中,添加类似...
'filter_condition_callback' => array($this, '_myCustomFilter'),
然后添加过滤方法(根据需要更改“where()”)...
protected function _myCustomFilter($collection, $column)
{
if (!$value = $column->getFilter()->getValue()) {
return $this;
}
$this->getCollection()->getSelect()->where(
"my_field like ?"
, "%$value%");
return $this;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)