[addon datagrid] DataGrid

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
SparkCZ
Člen | 22
+
0
-

Je mozne priradit k operaci nejake potvrzovani akce? Narazil jsem na ConfirmationDialog od DocX, ale je nejspis psany pro PHP 5.3 a ja pouzivam 5.2.x, navic stejne nejde stahnout archiv…

Honza Kuchař
Člen | 1662
+
0
-

SparkCZ napsal(a):

Je mozne priradit k operaci nejake potvrzovani akce? Narazil jsem na ConfirmationDialog od DocX, ale je nejspis psany pro PHP 5.3 a ja pouzivam 5.2.x, navic stejne nejde stahnout archiv…

Zkus to na to navěsit pomocí JavaScriptu. A nebo přejdi na PHP 5.3. Ale pokud si správně pamatuji, tak se ConfirmationDialog dá používat i v PHP 5.2 (pokud si ho teda upravíš).

SparkCZ
Člen | 22
+
0
-

Myslis primo na submitButton? Mohl bys nastinit?
Na PHP 5.3 se mi zatim prejit moc nechce…

Honza Kuchař
Člen | 1662
+
0
-

Nástin na to na co chceš udělat potvrzení navěš onclick="if(confirm()...". Zkus hledat, už se to tu řešilo několikrát.

Pavel S.
Člen | 24
+
0
-

Zdravím,

existuje někdo, kdo verzi DataGridu pro Nette 0.9.3 přepsal tak, aby fungoval ve verzi PHP 5.3 se jmennými prostory? Nechce se mi věřit, že by se nikdo takový nenašel… Prosím případného dotyčného, kdyby byl tak moc hodný, jestli by se o svou úpravu podělil.

Editoval Pavel S. (9. 5. 2010 2:05)

Glottis
Člen | 129
+
0
-

nazdar lidi. ja na razil na problem a nevim jestli to je rukama nebo cim.

mam presenter treba clanek. vypisuju si seznam datagridem. ten fuguje bezvadne i ajaxove. pak si kliknu edit clanku (clanek/edit/1) a z sablony edit vykreslim jak formular tak datagrid. no a tady prestane ajax fungovat. nejde strankovat ani nic dalsiho. vyzkoumal jsem jen ze mu v odkazech prekazi ta akce edit. kdzy to v datagrid.js hacknu tak to funguje ale to se mi nelibi. delam neco spatne? bez ajaxu to normalne funguje. pres debuger jsem vypozoroval ze pri ajaxovem volani s emi vrati cela stranka znova ale uz se to nezobrazi. kdzy neni akce edit tak to krasne vraci json.

dik

Michal

stefi023
Člen | 71
+
0
-

Ahoj, mam dotaz…
Je mozne nejak pracovat s hodnotou z databaze, ktera je NULL?
Napriklad mam v DB DateTime sloupec, kde vychozi hodnota je NULL, tu chci zobrazit pomoci DateColumn, ovsem pokud tato hodnota je NULL tak neprojde podminkou v DataGridRenderer kolem radku 555 (nebo spis ji projde a vyhodi vyjimku) (alespon v rev. 53)

if (!isset($data[$column->getName()])) {

Napadlo me to opravit zmenou na

if (!array_key_exists($column->getName(), $data)) {

ovsem nevim, zda to nevadi necemu jinemu, popr. zda nedelam neco blbe.
Diky moc

Editoval stefi023 (31. 5. 2010 23:08)

blacksun
Člen | 177
+
0
-

vlki napsal(a):

Aktuálně nic víc než DataSource neumí. Nemělo by ale být těžké vytvořit nějaký adaptér, který by šel nastavit podle potřeby. Respektive DataSource rozbít na jednotlivé operace count($conds) a fetchAll($conds, $orderBy, $offset, $limit), které by šly odchytit na úrovni modelu.

Osobně jsem si vytvořit DataSource, kterému předhodím pole. Funguje parádně až na filtr pomocí wildcard (*).

Ahoj,

nebyl by pls nějaký jednoduchý nástřel, jak na ten datasource z pole? Snažil jsem se o něco podobného, ale nakonec jsem to radši dal do db a četl z ní..

Díky předem :-)

M.

Honza Kuchař
Člen | 1662
+
0
-

Nejednoduší to bude Pole → sqlite → číst → smazat. Ale pokud budeš chtít použít opravdu pole, budeš si muset nejspíš napsat driver pro Dibi, který bude pracovat s polem jako s databází… Ale to je podle mě strašně moc práce = implementace jednoduchého db serveru na PHPkem… Uff… :-)

mkoubik
Člen | 728
+
0
-

Fajn by bylo rozhrani IDataSource (pouze metody, ktere pouziva datagrid), ale pak by se ho musel implementovat datasource z dibi, který nemá s datagridem nic společného, což je fuj.

Nebo mít to rozhraní jenom v datagridu a zarovň tam mít wrapper pro dibi datasource, který by ho implementoval, ale dibi by vracelo ten svůj a muselo by se to wrapovat ručně, takže taky fuj.

Ondřej Mirtes
Člen | 1536
+
0
-

Upravil jsem Romanův DataGrid, aby přijímal a pracoval s IDataSource a naimplementoval jsem DoctrineDataSource (funkční na Doctrine 2 Beta 1), který v práci potřebujeme. Funguje to dobře :)

Až dovyřeším všechny problémy, tak možná požádám o svolení k uveřejnění na GitHubu, ať z toho taky něco máte :)

Ondřej Mirtes
Člen | 1536
+
0
-

Ahoj,
mám problém – filtrování mi funguje hezky, napíšu nějaký text (který jde do LIKE dotazu), odenteruju a zobrazí se mi ty správné řádky. Přepíšu input, odenteruju a zobrazí se mi zase ty správné řádky.

Problém mám s filtrováním pomocí checkboxu. Mám booleanovský sloupec a nad ním checkbox filtr – který ovšem na změnu reaguje jen jednou (po načtení stránky), na další odškrtávání/zaškrtávání už nijak Javascript nereaguje, nic se po serveru nežádá. V datagrid.js jde nejspíš o tyto řádky a žádnou chybu v nich nevidím (první – pro inputy – mi funguje, druhý pro checkboxy jen jednou):

// ajaxové filtrování formulářů datagridů po stisknutí klávesy <ENTER>
$("form.datagrid table.datagrid tr.filters input[type=text]").livequery("keypress", function (e) {
	if (e.keyCode == 13) {
		$(this).parents("form.datagrid").find("input:submit[name=filterSubmit]").ajaxSubmit();
		return false;
	}
});

// ajaxové filtrování formulářů datagridů pomocí změny hodnoty selectboxu nebo checkboxu
$("form.datagrid table.datagrid").find("tr.filters input:checkbox, tr.filters select").livequery("change", function (e) {
	$(this).parents("form.datagrid").find("input:submit[name=filterSubmit]").ajaxSubmit();
	return false;
});

Podle chování to vypadá na klasický bug s $(document).ready();, kdy DOM prvky ztratí navěšené události poté, co jsou updatnuty ze serveru pomocí AJAXu, ale tady je vše navěšené pomocí livequery, které tomuto chování zabraňuje, tak fakt nevím, kde hledat chybu.

EDIT: Bylo to nekompatibilitou livequery a jQuery 1.4.

MzK
Člen | 127
+
0
-

Nefunguje mi přidání odkazu akce.
Odkaz by měl vypadat třeba takto:
/?co=nabidka&id=12&action=edit&presenter=admin
Bohužel se generuje toto:
?co=nabidka&id=12&action=%2F&presenter=admin

<?php
$grid->addAction('Edituj', $link, Html::el('span')->class('icon icon-edit'), $useAjax = false);
//…
$grid->addAction('Edituj', 'admin:edit, nabidky', Html::el('span')->class('icon icon-edit'), $useAjax = false);
//?id=1&action=edit%2C+nabidky&presenter=admin
?>

už jinak nevím jak tam nacpat ten odkaz s více parametry jinak.
Díky za radu :(

despiq
Člen | 320
+
0
-

odkaz by mela bejt jen nejaka fce, jako prvni parametr do ni dostanes id radky a jako druhy dostanes objekt s celou radkou z DB, to by ti melo stacit ne?

<?php
$grid->addAction('Edit', 'Customer:edit' ...

public function edit($id, $dibiobjectrow) // pokud pouzivas dibi
?>

aspon teda myslim ze to jako druhej posila celou radku z db

2bfree
Člen | 248
+
0
-

Existuje nějaká možnost, kterak napojit tenhle parádní kus kódu na obyčejné pole (Array)?

Mám následujícím způsobem definované pole

<?php
$dataArray["nazev-sloupce-1"][0]="hodnota 1";
$dataArray["nazev-sloupce-2"][0]="hodnota 2";
$dataArray["nazev-sloupce-1"][1]="hodnota 3";
$dataArray["nazev-sloupce-2"][1]="hodnota 4";
?>

A chtěl bych získat tabulku:

nazev-sloupce-1 nazev-sloupce-2
1 2
3 4

Pole získávám načítáním .ini souborů z jednotlivých adresářů, kde každý .ini soubor obsahuje data pro jeden řádek tabulky.

Momentálně to mám implementované po svém, ale tohle se mi líbí víc.

blacksun
Člen | 177
+
0
-

Narazil jsem na nějaké problémky s nepřekreslováním, ale zatím vše vyřešila 1.0-alpha verze Nette a 1.0-dev verze Datagridu.

Chtěl jsem se zeptat, jesli je nějak elegantně využít vlastnost „rememberState“ tak, aby se při prvním vykreslení datagridu natáhlo defaultní zobrazení, ale při přechodu akcí na nějakou stránku a návratu zpět jsem se vrátil tam, odkud jsem tou akcí odešel?

Tzn. takové zachvování i nezachovávání stavu :-) (jestli je tomu rozumět :-D)

gonny
Člen | 1
+
0
-

Ahoj,
dynamicky přidávám do operations a potřeboval bych, zda jde nějak odpálit form events datagridu před samotnou inicializací datagridu. Jde o to, že se operations přerenderují dříve, než se upraví obsah DB. (Zatím to řeším tak, že si vezmu z POST data, provedu operace, zavedu datagrid)

Díky

tom
Člen | 171
+
0
-

Jakým způsobem vytvořím tlačitko pro přidávání záznamu (něco jako je tady to tlačítko „Přidat adresáta“)? Nepříjde mi úplně nejlepší mít to tlačítko pro nový záznam na každém řádku, tak bych ho chtěl mít globálně pro celý grid. Jestli jsem řešení někde přehlídl, tak se předem omlouvám. Díky

romansklenar
Člen | 655
+
0
-
			$link = Html::el('a')->href($this->link('new!'))
				->title("Přidat adresáta")
				->setHtml("Přidat adresáta");

			$renderer = $grid->getRenderer();
			$renderer->footerFormat = $link . $renderer->footerFormat;
			$grid->setRenderer($renderer);
tom
Člen | 171
+
0
-

romansklenar napsal(a):

			$link = Html::el('a')->href($this->link('new!'))
				->title("Přidat adresáta")
				->setHtml("Přidat adresáta");

			$renderer = $grid->getRenderer();
			$renderer->footerFormat = $link . $renderer->footerFormat;
			$grid->setRenderer($renderer);

super, diky moc

leumas
Člen | 13
+
0
-

Zistil som, ze textovy column pri vkladani html elementu vymaze jeho vnutro a nahradi ho jeho textom, co je problem v pripade, ze dotycny element obsahoval dalsie elementy. Je to chyba columnu, alebo moja, ze pouzivam nespravny column?

Pouzivam najnovsiu vyvojovu verziu datagridu.

mlha
Člen | 58
+
0
-

Musel jsem si upravit DataGrid. Soubor dataGrid.php metoda render().
Na začátku metody testuji zda je Ajax a zároveň není požadavek na překreslení DataGridu

<?php
if ($this->presenter->isAjax() && !$this->isControlInvalid()) {
 echo '';
 return;
}
?>

Toto ma zajistit, aby se nevolaly SQL dotazy v DataSource zbytečně.
Můžete na to kouknout, zda je to korektní? Díky

Editoval mlha (9. 8. 2010 21:51)

knyttl
Člen | 196
+
0
-

Ahoj,

trochu bojuju s tim, ze razeni se resi pres params, tedy GET a filtry pres POST. Libilo by se mi, kdyby oboje mohlo byt GET, abych se mohl odkazovat primo na nejaky filtr.

Diky

blacksun
Člen | 177
+
0
-

knyttr napsal(a):

Ahoj,

trochu bojuju s tim, ze razeni se resi pres params, tedy GET a filtry pres POST. Libilo by se mi, kdyby oboje mohlo byt GET, abych se mohl odkazovat primo na nejaky filtr.

Diky

Teoreticky by mělo stačit najít form, kterým se aplikují filtry, a změnit mu metodu na GET. Nevím, jak se na to bude tvářit nette obsluha, ale mělo by to šlapat.

pjoter
Člen | 118
+
0
-

Díky za super komponentu, narazil jsem na dva problémy:

  1. Nejde mi formátovat čas v ColumnDate resp. Hodiny jdou %H ale s minutama a vteřina mi to nefunguje (%s a %i)
  2. Tohle bude asi zádrhel ze strany jqueryui, když mám datetime a zadám stejné datum nenajde mi to nic, kdybych věděl kde se upravuje sql dotaz pro DateFilter tak bych si ho upravil aby hledal jen v roce mesici a dni.

Jinak jsem ještě chtěl řešit zakázání akce pro konkrétní záznam ale to jsem nakonec neřešil (je tam na to nějaká featura ?)

blacksun
Člen | 177
+
0
-

pjoter napsal(a):

1. Nejde mi formátovat čas v ColumnDate resp. Hodiny jdou %H ale s minutama a vteřina mi to nefunguje (%s a %i)

Formátuje se jako ve funkci strftime

mayo2000
Člen | 7
+
0
-

Používam NetteFramework-0.9.6-PHP5.2-nonprefix a datagrid-0.9.4–0 (ktorý je vlastne rovnaký ako datagrid-1.0-alpha-0).

Nefungoval mi ajaxové volania. Pričom firebug ukazoval, že server posiela odpovede.

Debugovanim datagrid.js som si všimol, že riadok: $
(„#“ + id).fadeTo(„fast“, 0.3, function () {
sa jednoducho nespracuje pričom premmenná id mala hodnotu: snippet-baseGrid-:grid

jQuery selector $(„#“ + ‚snippet-baseGrid-:grid‘) vracal jednoducho prádzny jQuery objekt.

Potom som jednoducho pridal na začiatok funkcie macroSnipper v LatteMacros.php:
$content = str_replace(‚:‘, '', $content);

A voala. A ajax volania fungujú. Zbežne som pozeral LatteMacros.php vo verzii NetteFramework-2.0alpha-PHP5.2-nonprefix a vyzerá že David to tam tiež nejako rieši.

Dúfam, že toto niekomu pomôže a keď sa to tu už riešilo, tak sorry

ondra310
Člen | 25
+
0
-

Zdravim, mam problem, jakmile chci zapnout filtrovani nad sloupci v tabulce, tak mi to hodi chybu: „InvalidStateException – Component '' is not attached to ‚INamingContainer‘“. Nejak se mi to nedari vyresit, bo nevim presne z kama vitr vane. Jsem spise zacatecnik v Nette. Jestli pomuze zdrojak komponenty:

protected function createComponentGrid($name)
	{
		$this->dbConnect();
		$grid = new DataGrid;

		$grid->bindDataTable($this->model->showCustomerList());
		$grid->itemsPerPage = 60;
		$grid->displayedItems = array('all',15,30,60,90);

        //ovlivneni globalniho vzhledu tabulky
		$renderer = $grid->getRenderer();
		$renderer->wrappers['datagrid']['container'] = 'table class=list_table';
		//$renderer->onRowRender[]  = array($this, 'gridOnRowRendered');
		$grid->setRenderer($renderer);


		$grid->keyName = 'id_zakaznik';
        // přidáme sloupec pro akce (sloupců může být i více)
        $grid->addActionColumn('Obsluha');
        $grid->addAction('Editace', 'Customer:edit', NHtml::el('span','Vybrat'));

		$grid->addColumn('nazev', 'Název');
		$grid['nazev']->addFilter();
		$grid->addColumn('kod_zakaznika', 'Kód zákazníka');
        $grid->addColumn('ICO', 'Ičo');
        $grid->addDateColumn('last_sync', 'Datum poslední synchronizace', '%d.%m.%Y %H:%m:%S'); // český formát: '%d.%m.%Y'

        $grid['last_sync']->getHeaderPrototype()->style('width: 140px');




		$grid->rememberState = TRUE; // povolí ukládání stavů komponenty do session
        $grid->timeout = '+ 7 days';

		$this->addComponent($grid, $name);


	}//end createComponentGrid

Používám NetteFramework-0.9.6-PHP5.2, datagrid –0.9.4. Jestli se to řešilo někde jinde, tak prosím odkaz, ja jsme to nějak nenašel :-(. Díky

mayo2000
Člen | 7
+
0
-

Ak chcete používať datagrid pod Oraclom, možno sa hodí mnou upravený dibbi driver (oracle OCI8 nepozná seek). Stačí v config.ini nahradiť oracle driver za oraclex

<?php

require_once 'oracle.php';

/**
 * This file is part of the "dibi" - smart database abstraction layer.
 *
 * Copyright (c) 2005, 2010 David Grudl (http://davidgrudl.com)
 *
 * This source file is subject to the "dibi license", and/or
 * GPL license. For more information please see https://dibiphp.com
 * @package    drivers
 */

/**
 * The eXtended dibi driver for Oracle database.
 *
 * Check DibiOracleDriver for reference
 *
 * Provides: experimental seek method (still waiting for OCI9 and scrollable cursors)
 *
 * Remark: seek method should work even without setting resultSet member,
 *         defined in ancestor class (because resultSet is just reference I guess),
 *         anyway I've added resultSet setter (hopefully it works)
 *
 * @author     Marian Hello
 * @package    drivers
 */
final class DibiOracleXDriver extends DibiOracleDriver implements IDibiDriver, IDibiResultDriver, IDibiReflector {

    /** @var string */
    private $lastSql;

    function __construct() {
        parent::__construct();
    }

    public function setResultSet($resultSet) {
        $this->resultSet = $resultSet;
    }

    public function getResultSet() {
        return $this->resultSet;
    }

    public function query($sql) {
        $this->lastSql = $sql;
        return parent::query($sql);
    }

    /**
     * Moves cursor position without fetching row.
     * @param  int      the 0-based cursor pos to seek to
     * @return boolean  TRUE on success, FALSE if unable to seek to specified record
     */
    public function seek($row) {

        // try dibbi parent method first
        try {

            return parent::seek($row);

            // if still not implemented go ahead with custom
        } catch (NotImplementedException $e) {

            // getting current resultSet
            $resultSet = $this->getResultResource();
            oci_cancel($resultSet);

            // create fresh resultSet (meaning start from row 0)
            $resultSet = $this->query($this->lastSql)->getResultResource();

            // loop to required row
            while (--$row >= 0) {
                if (oci_fetch($resultSet)) {

                }
                else
                    return FALSE;
            }

            // :TODO: I should investigate if this really set resultSet!
            $this->setResultSet($resultSet);

            return TRUE;
        }
    }

    // Warning: this function will replace your resultSet
    // it should be called before begin transcation and after actual sql statement
    public function getLocalTransactionId() {
        $return = $this->query('SELECT dbms_transaction.local_transaction_id FROM dual')
                       ->fetch(FALSE);
        return $return[0];
    }

}

?>
jpo
Člen | 2
+
0
-

Zdravim,

chcel som pouzit Datagrid v Nette 2.0, ako si som narazil na par problemov:

class DataGrid extends Control implements ArrayAccess, INamingContainer

Class ‚Control‘ not found, co zrovna nebol az taky problem, lebo to som premenoval na ‚NControl‘ a vsak ‚INamingContainter‘ uz po novom v adresari Nette/Forms ako jediny chyba. Budem rad, ak sa objavi aj nejaka verzia datagridu pre Nette 2.0.

Diky

westrem
Člen | 398
+
0
-

jpo napsal:
Budem rad, ak sa objavi aj nejaka verzia datagridu pre Nette 2.0.

To bude musiet najskor byt Nette 2.0 stable, nechapem co si vlastne ludia myslia. Ze autori doplnkov maju k dispozicii mocne orakulum a mozu hned pisat veci pod niecim co ani je released, alebo ze sprava ich doplnkov aby korespondovala s kazdym commitom v Nette je ich jediny job?!

Preberte sa ludkovia a trosku strpenia prosim ..

Royce
Člen | 15
+
0
-

Dobrý den, bobjuju s problémem jak zpracovat kliknutí na edit v datagridu…
Mám seznam zpráv a chci mít možnost je upravit, takže mám ikonku na úpravu

...
$grid->keyName = 'id_zpravy';
...
$grid->addAction('Upravit', 'Zpravy:edit', Html::el('span')->class('icon icon-edit'), $useAjax = FALSE);

a chci abych se po kliknutí dostal na formulář pro editaci těchto dat… takže mám metodu renderEdit() a k ní odpovídající šablonu.. ALE nevím jak do této šablony dostat to id_zpravy. Ono je v URL a můžu si pro něj šáhnout pomocí $_GET['id_zpravy'] ale to se mi nezdá jako košér, musí to jít i jinak.. pomocí parametru ve funkci renderEdit($id) to nejde, tam se to nedostane…
Díky za radu

Tracy
Člen | 8
+
0
-

Cau, kdyz se k tomu nikdo nema tak ja ti ukazu jak to mam ja, ale s Nette sem jeste desna lamka, takze to nejspis neni uplne tak jak to ma bejt :) Nicmene to funguje…

$grid->addAction('Edit', 'new:edit', clone $icon->class('icon icon-edit'), FALSE, DataGridAction::WITH_KEY);

– na editaci a pridavani mam zvlast presenter a pouzil sem i definovani ze to ma bejt s klicem, pravdepodobne to tam bejt nemusi.

public function actionEdit($id) {
        $values = dibi::fetch("SELECT * FROM xxx WHERE id=%i", $id);
        $this['form']->setDefaults($values);
    }

mega prasarna, nevyuziti modelu, ja vim, ted sem rad ze to funguje a to vyresim pozdejs :)

No a pak uz jen formular

 public function createComponentForm($id) {
       $form = new AppForm($this, $id);



Jestli sem ti cpal neco, cos vubec vedet nechtel tak se omlouvam a pak to vesele smazu :)

Editoval Tracy (10. 11. 2010 11:32)

strunc
Člen | 7
+
0
-

Připojuji se k Jpo a také prosím o verzi tohoto datagridu pro Nette 2.0. Je moc pěkný a myslím také jediný. Nebo jak děláte DataGrid v Nette 2.0 ostatní? S velkým díky.

Royce
Člen | 15
+
0
-

Tracy napsal(a):

Cau, kdyz se k tomu nikdo nema tak ja ti ukazu jak to mam ja, ale s Nette sem jeste desna lamka, takze to nejspis neni uplne tak jak to ma bejt :) Nicmene to funguje…

Jestli je to tak jak to má být neposoudím.. ale nakoplo mě to správným směrem.. takže mockrát díky

mayo2000
Člen | 7
+
0
-

V práci sme potrebovali zobraziť XLS zošit v gride. Napísal som teda niečo ako XLS datasource. Zatiaľ to má kopec obmedzení typu názvy stĺpcov musia byť povinne uvedené v prvom riadku XLS zošita a podobne. Pridávam to tu, nech môže niekto na tom zapracovať. Pravdepodobne to bude fungovať len s vývojovou verziou datagridu z gitu. Nakoľko tento datasource využíva knižnicu phpExcel, musí byť prítomná v libs a ďalej NetteFramework-0.9.7-PHP5.3

Ak má niekto voľný web server s PHP 5.3, tak by bolo aj live-demo.

Download: http://80.79.23.159/xlsgrid.zip

xrep
Člen | 51
+
0
-

Funguje toto pod PHP 5.3?
Snazim sa to rozbehat a cely cas problemy :(

Do bootstrapu som pridal RobotLoader, a zadefinoval namespace pre RobotLoader,
teraz mi to hlasi „Class ‚Control‘ not found“ v subore /components/DataGrid/DataGrid.php ..

Nema niekto spisany nejaky slusny navod na rozbehanie? Dakujem

tom
Člen | 171
+
0
-

Mám DataGrid ve kterém na řádku kliknu na akci „detail“, čímž se mi otevře detail dané položky. Tento detail by měl být zase další datagrid a nacházející se na adrese ../detail?id=2 (například). Pokud v tomto gridu kliknu opět na akci „detail“, dostanu se pak na adresu např. ../dalsidetail?id=1

Jak se však přes submit dostanu zpět na ten první detail? Jde mi o to, jak dostat ‚id‘ toho prvního detailu až do nějaké akce toho druhého abych při redirectu věděl kam se vracet …

Díky moc

mkoubik
Člen | 728
+
0
-

Buď si toho předka vytáhni z db, nebo si jeho id ukládej do parametru.

tom
Člen | 171
+
0
-

mkoubik napsal(a):

Buď si toho předka vytáhni z db, nebo si jeho id ukládej do parametru.

aha s tou DB je to dobry napad, to zkusim…

pokousel jsem se pres parametr, ale nedari se mi sem dostat parametry

<?php
$grid->addAction('Detail', 'AdministraceArchitekturaPortfolio:detailSm1', NHtml::el('span')->class('icon icon-detail'), $useAjax = TRUE);
?>

nevis jak na to?

diky

mkoubik
Člen | 728
+
0
-
$grid->addAction('Detail', 'AdministraceArchitekturaPortfolio:detailSm1', NHtml::el('span')->class('icon icon-detail'), TRUE, 'parent_id');

Přičemž v datasourcu musíš mít sloupec parent_id.

Royce
Člen | 15
+
0
-

Ahoj, řeším zajímavý problém.. jak do dataGridu dostat vlastní sloupeček, který není uložený v databázi, například „počet příloh“.. mám metodu která mi podle ID záznamu vrátí číslo, je nějaká možnost tuhle metodu volat pro každý řádek datagridu? díky

blacksun
Člen | 177
+
0
-

Narychlo mě napadá, že pomocí vlastního renderování buňky si můžeš doplnit počet příloh do jiného sloupce například email: ano/ne (počet příloh).

Případně si přidělat vlastní typ sloupce, který by se vůbec nenapojoval na datasource..

tom
Člen | 171
+
0
-

mkoubik napsal(a):

$grid->addAction('Detail', 'AdministraceArchitekturaPortfolio:detailSm1', NHtml::el('span')->class('icon icon-detail'), TRUE, 'parent_id');

Přičemž v datasourcu musíš mít sloupec parent_id.

Dik, super

tom
Člen | 171
+
0
-

Jak resite situaci, kdy editujete nejaky zaznam rekneme na druhe nebo treti strance vypisu. Kliknu na akci Edit, zobrazim si editacni formular, provedu pozadovane upravy. Jenze po odeslani se vratim na zacatek seznamu (na prvni stranku) ale potreboval bych se vratit na tu druhou nebo treti stranu, aby nebylo stale nutne strankovat … Jak predavat parametr grid-page?

Diky

o5
Člen | 416
+
0
-

Udelej $page v gridu persistentni pokud neni a v presenteru kde mas tovarnu na grid dej

public static function getPersistentComponents()
{
   return array('grid');
}

Je potreba pak jeste trochu ohnout link() metodu. Resil jsem to zde

blacksun
Člen | 177
+
0
-

DataGrid má proměnnou rememberState, mělo by stačit nastavit ji na true.. Pokud jsem netrefil přesně název, mrkni na stránku doplňku, je to tam popsaný..

<?php

  $this->grid = new DataGrid();
  $this->grid->rememberState = true;

?>
hajek-tadeas
Člen | 4
+
0
-

Zdravím Vás,
chtěl jsem se zeptat na věc ohledně dat (časového určení) v datagridu. Existuje nějaká horní hranice pro výpis? Pro datum 31.12.2040 mi tabulka vypisuje hodnotu 1.1.1970. Nevíte čím to je, případně jak se to dá vyřešit?

kravčo
Člen | 721
+
0
-

Tipol by som to na ohraničenie štandardného 32-bitovéto timestampu dňom 19.1.2038 niekedy nadránom. Ak ti vypíše dátum 31.12.2037 správne, chyba bude zrejme tam.

PHP date()