Problém s datagridom pri obmedzení na počet riadkov

KristianSubweb
Člen | 144
+
0
-

Ahojte mám taky menší problém používam stromový datagrid výpis počeť riadkov je nastavitelný cez selectbox. Príklad nastavím ho na 10 riadov. Lenže ked si niekde otvorím tu stromovú štruktú a počet tých vnorených riadkov je náhodov väčší ako tých desat tak aj tie mi oreže na 10.

Chcel by som aby to fungovalo tak aby ked si to obmedzím na 10 tak aby mi to orezalo len počet tých nadradených rodičov a nie tých vnorených.

Ďakujem :)

public function createComponentTestAnalysesGrid($name) {

        $qb = $this->testSetService->getAllAsQb()
                ->where("ts.project = :project")
                ->setParameter("project", $this->project);
        $grid = $this->datagridFactory->createDatagrid($this, $qb, $name);
        $grid->setHeader("Test Set / Test Case");

        $grid->setHugeTreeView([$this, "getChildren"], [$this, "hasChildren"]);
        $grid->addColumnText("name", "is.projects.nameTestSet")
            ->setRenderer(function($item) {
                if ($item instanceof \ProjectModule\Entities\TestSet) {
                    return $item->getTrProp("name");
                } else {
                    return Html::el("a onclick='return false;' data-caseid=" . $item->getId())
                        ->href("#")
                        ->setText($item->getTrProp("name"))
                        ->setClass("showCaseInModal");
                }
            })
            ->setSortable();
        $grid->addColumnText("user", "is.projects.createdBy")
            ->setRenderer(function($item) {
                return $item->getCreator()->getFullName();
            });
        $grid->addColumnText("approved", "is.projects.approved")
            ->setRenderer(function($item) {
                return $item->getApprovedInStyle();
            })
            ->setTemplateEscaping(false);

        $grid->addColumnDateTime("createDate", "is.projects.createDate")
            ->setSortable();

        $grid->addFilterText("name", "is.projects.nameTS");
        $grid->addFilterDateRange("createDate", "is.projects.createDateTS");
        $grid->addFilterSelect("creator", "is.projects.createdTS", Functions::insertEmptyArray($this->userService->getAllUsersInProject($this->projectID)));

        $grid->addColumnText("action", "is.default.action")
            ->setAlign("right")
            ->setTemplate($this->dirService->getModulesDir().'/ProjectModule/templates/TestAnalyses/Blocks/actionDatagridAnalyses.latte', ["presenter" => $grid->getPresenter()]);

        return $grid;
    }

Editoval KristianSubweb (13. 4. 2018 16:13)

KristianSubweb
Člen | 144
+
0
-
public function createDatagrid($presenter, $data, $name = null) {

        $grid = new DataGrid($presenter, $name);
        // setup
        $grid->setTranslator($this->translator);
        $grid->setDataSource($data);
        $grid->setStrictSessionFilterValues(FALSE);
        $grid->setTemplateFile($this->dirService->getBlocksDir() . "/datagridTemplate.latte");
        $grid->setDefaultSort(["id" => "DESC"]);
        $grid->setDefaultPerPage(10);
        $grid->setColumnsHideable();

        // ID is everywhere
        $grid->addColumnText("id", "ID")
            ->setSortable();

        return $grid;
    }