Magento 1.9:对表格进行排序

时间:2018-08-29 08:35:57

标签: magento magento-1.9

我在gridview中添加了一个列,它想显示事件的剩余天数。

$this->addColumn('calculate_days', array(
            'header'    => Mage::helper('myodule')->__('Remaining'),
            'type'      => 'options',
            'width'     => '200px',
            'options'   => $options,
            'frame_callback' => array($this, 'getRemaining'),  
            'filter_condition_callback' => array($this, '_calculateFilter')
        ));

getRemaining方法:

 public function getRemaining($value, $row, $column)
    {
       // some calculation to find out remaining days based on some conditions

       return $days;
    }

如果我未指定index键,则单击Remaining列将不起作用。因此,我已将index键添加到addColumn中,如下所示:

$this->addColumn('calculate_days', array(
            'header'    => Mage::helper('myodule')->__('Remaining'),
            'type'      => 'options',
            'width'     => '200px',
            'index'     => 'created_at',
            'options'   => $options,
            'frame_callback' => array($this, 'getRemaining'),  
            'filter_condition_callback' => array($this, '_calculateFilter')
        ));

现在排序是有效的,但不正确。当我指定index时,按index列应用排序(在这种情况下,将按created_at排序),但我想按剩余天数排序。

我应该怎么做才能解决这个问题?还是有sort callback

1 个答案:

答案 0 :(得分:0)

为什么不将此值添加为该网格中的新字段?然后每天通过cronjob更新此字段值。

然后,您将以本机方式对项目进行排序,并且避免每次查看过滤器时都要重新计算每个值。

希望有帮助, 问候