protected function displayRowColumns($row, $next_row, $count)
    {
        // Make sure we should display a row for the current data. If there
        // are no visible columns for the row data, just skip displaying the
        // entire row.
        $should_show_row = false;
        foreach ($this->getVisibleColumns() as $column) {
            if ($column->hasVisibleRenderer($row)) {
                $should_show_row = true;
                break;
            }
        }

        // Display a row of data.
        if ($should_show_row) {
            $tr_tag = new SwatHtmlTag('tr');
            $tr_tag->class = $this->getRowClassString($row, $count);

            foreach ($this->columns as $column) {
                $tr_tag->addAttributes($column->getTrAttributes($row));
            }

            if ($this->rowHasMessage($row)) {
                $tr_tag->class .= ' swat-error';
            }

            $tr_tag->open();

            foreach ($this->columns as $column) {
                $column->display($row);
            }

            $tr_tag->close();
        }
    }