Prado\Web\UI\WebControls\TTable::renderContents PHP 메소드

renderContents() 공개 메소드

Renders body contents of the table.
public renderContents ( $writer )
    public function renderContents($writer)
    {
        if ($this->getHasControls()) {
            $renderTableSection = false;
            foreach ($this->getControls() as $row) {
                if ($row->getTableSection() !== TTableRowSection::Body) {
                    $renderTableSection = true;
                    break;
                }
            }
            if ($renderTableSection) {
                $currentSection = TTableRowSection::Header;
                $writer->writeLine();
                foreach ($this->getControls() as $index => $row) {
                    if (($section = $row->getTableSection()) === $currentSection) {
                        if ($index === 0 && $currentSection === TTableRowSection::Header) {
                            $writer->renderBeginTag('thead');
                        }
                    } else {
                        if ($currentSection === TTableRowSection::Header) {
                            if ($index > 0) {
                                $writer->renderEndTag();
                            }
                            if ($section === TTableRowSection::Body) {
                                $writer->renderBeginTag('tbody');
                            } else {
                                $writer->renderBeginTag('tfoot');
                            }
                            $currentSection = $section;
                        } else {
                            if ($currentSection === TTableRowSection::Body) {
                                $writer->renderEndTag();
                                if ($section === TTableRowSection::Footer) {
                                    $writer->renderBeginTag('tfoot');
                                } else {
                                    throw new TConfigurationException('table_tablesection_outoforder');
                                }
                                $currentSection = $section;
                            } else {
                                // Footer
                                throw new TConfigurationException('table_tablesection_outoforder');
                            }
                        }
                    }
                    $row->renderControl($writer);
                    $writer->writeLine();
                }
                $writer->renderEndTag();
            } else {
                $writer->writeLine();
                foreach ($this->getControls() as $row) {
                    $row->renderControl($writer);
                    $writer->writeLine();
                }
            }
        }
    }