/**
  * Sets the data source object associated with the datagrid control.
  * In addition, the render method of all connected pagers is called so they
  * get updated when the data source is changed. Also the datagrid registers
  * itself for rendering in order to get it's content replaced on client side.
  * @param Traversable|array|string data source object
  */
 public function setDataSource($value)
 {
     parent::setDataSource($value);
     if ($this->getActiveControl()->canUpdateClientSide()) {
         $this->renderPager();
         $this->getPage()->getAdapter()->registerControlToRender($this, $this->getResponse()->createHtmlWriter());
     }
 }