public function execute()
 {
     $this->init();
     $this->reader->seek(max(0, waRequest::request('row', 0, waRequest::TYPE_INT)));
     $limit = max(1, waRequest::request('limit', 50, waRequest::TYPE_INT));
     $this->reader->columns(array(array('shopCsvProductviewController', 'tableRowHandler'), array(__CLASS__, 'columns')));
     $n = 0;
     $this->response['tbody'] = '';
     while (++$n <= $limit && $this->reader->next()) {
         $this->response['tbody'] .= $this->reader->getTableRow();
     }
     $this->response['rows_count'] = $this->reader->count();
     $this->response['current'] = $this->reader->key();
 }
 private function emulate($key = null, $second_key = '')
 {
     if (ifset($this->data['emulate']) === null) {
         return false;
     } else {
         if (!empty($key)) {
             $this->data['emulate'][$this->reader->key()] = $key . '|' . $second_key;
         }
         return true;
     }
 }