public function render()
    {
        $columns = $this->options[self::GRID_PARAM_COLUMNS];

        if ($this->hasAtLeastOneFilter()) {
            $head = $this->createTableHeader(array(
                $this->createTopHeadingRow($columns),
                $this->createBottomHeadingRow($columns)
            ));
        } else {
            $head = $this->createTableHeader(array(
                $this->createTopHeadingRow($columns)
            ));
        }

        $body = $this->createTableBody($this->createBodyRows($columns, $this->data));

        return $this->createTable(array($head, $body))
                    ->render();
    }