/**
  * @param GridField $grid
  * @param string $value json encoded string
  */
 public function __construct($grid, $value = null)
 {
     $this->grid = $grid;
     if ($value) {
         $this->setValue($value);
     }
     parent::__construct($grid->getName() . '[GridState]');
 }
 public function handleAction(GridField $gridField, $actionName, $arguments, $data)
 {
     if (!$this->checkDataType($gridField->getList())) {
         return;
     }
     $state = $gridField->State->GridFieldFilterHeader;
     if ($actionName === 'filter') {
         if (isset($data['filter'][$gridField->getName()])) {
             foreach ($data['filter'][$gridField->getName()] as $key => $filter) {
                 $state->Columns->{$key} = $filter;
             }
         }
     } elseif ($actionName === 'reset') {
         $state->Columns = null;
     }
 }