2015-04-10 1 views
0

Я использую коллекцию коллекций моего пользовательского значения таблицы с коллекцией продуктов в моей корзине продукта magento. Проблема заключается в том, что я не могу фильтровать или сортировать этот пользовательский столбец с уже встроенными сортировка и фильтрация сетки. Я получаю пользовательское значение от рендеринга в сетке. Я пробовал почти все вещи из Google, но все же я не могу получить правильное решение для этого. Я также использовал filter_condition_callback в _prepareColumns() методе моя колонка, но это не имело смысла. Любая помощь была бы замечательной.Magento admin product grid Пользовательский фильтр столбцов не работает

Благодаря

ответ

0

Я обычно использую наблюдатель, чтобы добавить столбец к сетке. See this page (german language) how to do this.

Also the full module of this tutorial is available on GitHub.

Но, чтобы помочь вам, немного исходного кода будет хорошо. Какой пользовательский столбец вы хотите фильтровать? Какие значения у него есть?

Я сделал это так (в файле Observer.php)

$grid->addColumnAfter(
    'custom_column_code', // replace by your column code 
    array(
     'header'      => 'Label of your column', 
     'index'       => 'custom_column_code', // replace by your column code 
     'type'       => 'options', 
     'renderer'      => 'YourCompany_YourModule_YourRenderer', 
     'filter_condition_callback'  => array($this, '_filterHasMyCustomConditionCallback') 
     'options'      => array(//these are your filter options 
      '1'  => 'Yes', 
      '0'  => 'No' 
     ), 
    ), 
    'name' 
); 

, а затем и в Observer.php

public function _filterHasMyCustomConditionCallback($collection, $column) 
{ 
    $value = $column->getFilter()->getValue(); 

    if ($value == '0') 
    { 
     // join custom_column LEFT (inner join fails on NULL values) and filter by NULL 
     $collection->addAttributeToFilter('custom_column_code', array(['null' => true]), 'left'); 
    } 
    else 
    { 
     // filter all by NOT NULL 
     $collection->addFieldToFilter('custom_column_code', ['notnull' => true]); 
    } 

    return $this; 
} 
+0

ОК .thanks я буду использовать его, если это помогает меня – bhargav

 Смежные вопросы

  • Нет связанных вопросов^_^