NiftyGrid – Datagrid pro Nette 2 s velkou škálou funkcí

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

Nestihl jsem projít ještě celé vlákno, ale lze nějak nastavit, aby filtr použil podmínku HAVING pro alias?

..mám v selectu

CONCAT_WS(" ",product_color.product.code, product_color.color.code) as product .. a podle aliasu product bych potřeboval filtrovat.

Neřešil už někdo něco podobného?

Editoval Oggy (20. 12. 2012 12:51)

Oli
Člen | 1215
+
0
-

Zdravím, v rychlosti jsem tohle vlákno prošel, ale nenašel jsem odpověď na mou otázku.

Umí pracovat Niftygrid s primárními klíče přes víc sloupců? V Nette 2.0.7 je implementovaná podpora primárních klíčů přes víc sloupců a vrací primární klíč jako array. Je tohle nejak implementovane, nebo necha se to nejak pouzit?

Diky

Lukáš Kadlec
Člen | 17
+
0
-

Oggy napsal(a):

Můžeš si v DB vytvořit pohled (view), kde budeš mít sloupce spojené, a grid nechat pracovat s ním.

Oggy
Člen | 306
+
0
-

Lukáš Kadlec napsal(a):

Oggy napsal(a):

Můžeš si v DB vytvořit pohled (view), kde budeš mít sloupce spojené, a grid nechat pracovat s ním.

Jasně, to je řešení, které jsem udělal.. ale jen jsem se chtěl zeptat, zda to grid umí a já to neumím použít :-)

Ještě mám otázku ohledně ukládání stavu. Lze to nějak dělat? Nebo vypínáte ajax?

ajda2
Člen | 66
+
0
-

Zdravím, mám problém s ajaxovou inline editací.
Po odeslání formuláře s řádkem, dostanu nejprve odpověď {"redirect":"http: ... } a poté
{"state":[],"snippets":{"snippet--flashMessages":""}}

Tím pádem se neinvaliduje snippet s datagridem a pořád visím na inline formuláři, který se ale odeslal.
Pokud např. změním pořadí a snippet se překreslí, tak už se inline editace provede v pořádku.
Nevíte prosím, kde by mohla být chyba?

Editoval ajda2 (14. 1. 2013 18:54)

ajda2
Člen | 66
+
0
-

ajda2 napsal(a):

Zdravím, mám problém s ajaxovou inline editací.
Po odeslání formuláře s řádkem, dostanu nejprve odpověď {"redirect":"http: ... } a poté
{"state":[],"snippets":{"snippet--flashMessages":""}}

Tak jsem nyní zjistil, že problém se projevuje pouze pokud je vyplé stránkování.

raketoplan2005
Člen | 147
+
0
-

Ahoj! Narazil jsem to, že když chci do gridu propsírovat data ze složitějšího dotazu, který v modelu obsluhuji pomoci NDB->connection->query(), tak si knihovna pak chce zavolat Nette\Database\Statement::getPrimary() a na tom mi to spadne. Je nějaká možnost jak to obejít aniž bych dělal pohled v DB a dotaz poslal na něj? Děkuji.

Editoval raketoplan2005 (18. 1. 2013 18:36)

Kryšpin
Člen | 27
+
0
-

ajda2 napsal(a):

ajda2 napsal(a):

Zdravím, mám problém s ajaxovou inline editací.
Po odeslání formuláře s řádkem, dostanu nejprve odpověď {"redirect":"http: ... } a poté
{"state":[],"snippets":{"snippet--flashMessages":""}}

Tak jsem nyní zjistil, že problém se projevuje pouze pokud je vyplé stránkování.

Ano … stačilo zjistit na Gitu: https://github.com/…id/issues/18

matoni555
Člen | 40
+
0
-

Ahoj,
používám Nette\Database. Mám tabulku products a jejich variant products_variants. U každého produktu mám kód. Pokud má produkt varianty, jsou záznamy v tabulce products_variants a tyto varianty mají svůj kód.

V gridu vypisuji kódy produktu, ale nemůžu nastavit textový filtr (setTextFilter) a autocomplete (setAutocomplete), aby to fungovalo. Jak na to?

Takto definuji sloupec s kódy:

$this->addColumn('code', 'Kód', NULL, NULL, TRUE)
	->setRenderer(function($row) {

		$variants = $row->related('products_variants')->fetchPairs('id', 'code');

		if (count($variants) == 0) {
			return $row->code;
		} else {
			return implode(', ', $variants);
		}

});

Díky

kbtm
Člen | 22
+
0
-

Přeji dobrý den,

neřešil zatím nikdo použití session pro uložení stavu gridu (tj. page/perPage/filter/order) ?
Nějak se mi nedaří …

S pozdravem kbtm

raketoplan2005
Člen | 147
+
0
-

Ahoj,
mám vytvořenou komponentu NiftyGridu, ve které si v konstruktoru nastavím protected proměnné pro přístup do modelu.

Mám ale problém s tím, že v PHP 5.3 se k nim nemůžu dostat uvnitř setRenderer (v PHP 5.4 ano).

$that = $this;
$this->addColumn('kategorie')
                ->setRenderer(function($row) use ($that) {
                	$hlavni = $that->kategorie->getRoot($row['category']);
					return $hlavni['nazev'];
			}
		);

To mi vrátí Cannot read an undeclared property Grid::$kategorie

Zatím jsem to upravil tak, že jsem si na na to přidal getter, takže kód vypadá takhle:

$that = $this;
$this->addColumn('kategorie')
                ->setRenderer(function($row) use ($that) {
                	$hlavni = $that->getKategorie()->getRoot($row['category']);
					return $hlavni['nazev'];
			}
		);

Řeší se to podle vás nějak jinak, prosím?


Druhý dotaz: Lze nějak nastavit výchozí sloupec pro řazení? Když ho nastavím v datasource tak pak nejde sloupec pro řazení změnit kliknutím.

Editoval raketoplan2005 (29. 1. 2013 21:46)

ajda2
Člen | 66
+
0
-

Zdravím,
mám stejný problém. Potřebuji Použít data source z query a skončí to stejně. Nevíte jak toto řešit, případně jak se dá výsledek query, tedy statement „přetypovat“ na „Selection“?
Díky za rady.

raketoplan2005 napsal(a):

Ahoj! Narazil jsem to, že když chci do gridu propsírovat data ze složitějšího dotazu, který v modelu obsluhuji pomoci NDB->connection->query(), tak si knihovna pak chce zavolat Nette\Database\Statement::getPrimary() a na tom mi to spadne. Je nějaká možnost jak to obejít aniž bych dělal pohled v DB a dotaz poslal na něj? Děkuji.

ajda2
Člen | 66
+
0
-

Tak už jsem to vyřešil. Podařilo se mi dotaz poskládat pomocí

<?php
$table->select($columns);
?>

Což sem myslel, že snad ani nezvládnu :)

Stejně, ale zvláštní, že metoda query na Nette\Database\Connection vrací Nette\Database\Statement a

<?php
$table->select($columns)
?>

vrací Nette\Database\Table\Selection

snakey
Člen | 3
+
0
-

Nějaký tip jak selectEditable a booleanEditable nastavit defaultní hodnoty pro každý záznam?

Ono automatické nastavení mi minimálně při použití DoctrineDataSourc nefunguje.

Díky!

Blujacker
Člen | 89
+
0
-

Zdravm, snažím se použít NiftyGrid společně s doctrine, ale narazil jsem na problém s metodou setRender.

$this->addColumn('p_creationTime', 'Čas')
                ->setRenderer(function($row){return date('j. n. Y', strtotime($row['p_creationTime']));});

Jenomže toto vrací chybu:

Cannot use object of type stdClass as array

Pravděpodobně bych tedy měl přetypovat $row na nějakou Doctrince třídu, ale nevím na jakou.

Děkuji za Váš čas

Blujacker
Člen | 89
+
0
-

Blujacker napsal(a):

Zdravm, snažím se použít NiftyGrid společně s doctrine, ale narazil jsem na problém s metodou setRender.

$this->addColumn('p_creationTime', 'Čas')
                ->setRenderer(function($row){return date('j. n. Y', strtotime($row['p_creationTime']));});

Jenomže toto vrací chybu:

Cannot use object of type stdClass as array

Pravděpodobně bych tedy měl přetypovat $row na nějakou Doctrince třídu, ale nevím na jakou.

Děkuji za Váš čas

Problém vyřešen, stačilo to změnit na array (nicméně mi to nepřijde jako elegantní řešení, neměl by $row být rovnou typu array)?

->setRenderer(function($row){$array = (array) $row; return $array['p_creationTime']->format('j. n. Y H:i');});

Ale rovnou jsem narazil na další problém. Potřebuji v Gridu zobrazit jméno autora, na kterého vede reference z hlavní tabulky přes author_id. V query builderu jsem tedy najoinoval informace o autorovi:

$qb = $this->em->createQueryBuilder();
return new \Grid\RequestsGrid($qb
                ->select('p')
                ->from('Entities\Clanek', 'p')
                ->leftJoin('p.author', 'Entities\User')
                );

a potom v kodu gridu:

$this->addColumn('p_author_id', 'Autor')->setTableName("Entities\User.lastName");

ale to skončí na chybě:

Undefined index: p_author_id (zkoušel jsem i p_author)

Nevíte, kde dělám chybu?
Děkuji

Glottis
Člen | 129
+
0
-

cao, mam tu zadrhel s ajaxem. pridam si do gridu ajaxove tlacitko. to ma class=ajax a podle toho grid tlacitko zajaxuje a obslouzi sam. to je v pohode. kdyz na tlacitko kliknu, zavola se ajax akce a neco mi zobrazi. kdyz v tom obsahu jsou ale dalsi ajaxove odkazy, uz nefunguji ajaxove. vypada to jako by ajaxove volani gridu uz pak nad vracenym contentem uz nic nedelalo. da se tohle chovani nejak obejit?

na obecne ajaxovani pouzivam nette.ajax.js a to mi funguje. ale jak mi neco prekresli grid, tak uz se nic nedeje :/

dik
Glo

raketoplan2005
Člen | 147
+
0
-

Ahoj, měl bych ještě dva dotazy, prosím:

  1. Jde nějak přednastavit u DateFilteru aby bral automaticky např. <=? Mám v gridu dva sloupce (od, do) na což je tahle funkce zřejmá. Napsat to do inputu s vyskakujícím DatePickerem není nic veselého :-)
  2. Standardně se (asi) aplikuje filtr podle hodnoty v DB. Jak filtrovat podle výstupu ->setRenderer()?

Díkes.

Editoval raketoplan2005 (9. 2. 2013 23:35)

jiri.sykora83
Člen | 2
+
0
-

Mohl by sem někdo dat ukázku použití setSelectFilter()?
Nějak jsem ji někde nenašel.

raketoplan2005
Člen | 147
+
0
-

@jiri.sykora83:

$this->addColumn('active', "Active")
	->setSelectFilter(array(0=>"No", 1=>"Yes"), '---');
vojty
Člen | 19
+
0
-

Ahojte,

přimlouvám se za sjednocení proměnných $row a v callback u Doctrine DataSource, jak už namítnul achtan a blujacker.

Zároveň stejne jako blujacker nemůžu přijít na způsob jak pracovat s daty asociovaných tabulek. Má prosím někdo větší zkušenosti s gridem a Doctrine2?

Díky V.

raketoplan2005
Člen | 147
+
0
-

Pomocí setShow() nastavuji jestli se má tlačítko zobrazit (podle hodnoty jednoho sloupce), nenapadlo by vás ale jak podmínit přidání confirmation dialogu? Třeba pokud sloupec X je nižší než 35 pak není nutné zobrazit na odkazu confirm dialog? neváím jak udělat callback okolo celého ->add. Díky.

Editoval raketoplan2005 (17. 2. 2013 19:36)

forkman
Člen | 72
+
0
-

Ahoj, taky přispěju svým dotazem :-) NiftyGrid je je opravdu bomba, moc dobře se mi s ním dělá, ale mám tak trochu problém s ajaxem a invalidací. V akcích gridu mám akci na smazání a na ní je pověšený confirmation dialog (ajaxově) všechno proběhne, flash message o smazání se zobrazí, ale grid se nepřekresluje, pomůže až F5. Nějaký tip jak invalidovat NiftyGrid? Díky

Nifty
Člen | 45
+
0
-

forkman: Předpokládám, že máš v gridu vypnuté stránkování. V tom případě by byl problém zde (zatím nevyřešeno).

Z časových důvodů bych se chtěl omluvit za v současné době mrtvý vývoj, nicméně kolem června se k vývoji plánuji vrátit.

akadlec
Člen | 1326
+
0
-

Zajímavý addon, právě jej zkouším a narazil jsem na problém při použití filtru. Datagrig mám v podstatě v základu jak je uvedeno na nette stránce, datagrid mám aktuálně stažen z master větve. Když přidám filtry a kliknu na button filtrovat tak se generuje špatný link.

Při sortování je takovýto: ?grid-cs-order=p_name+ASC&grid-cs-perPage=20
a při filtrování zase takový: ?cs-filter[c_name]=2&grid-cs-order=p_name+ASC&grid-cs-perPage=20

Jen ještě dodám že na ten grid mám použitý multiplier který to možná způsobuje, zatím jsem to neinvestigoval.

akadlec
Člen | 1326
+
0
-

Nepřemýšlel někdo z vás poupravit hromadné akce co se přidávají přes addAction tak aby to nevygenerovalo select a button ale každou action jako button?

Taufic
Člen | 31
+
0
-

Zdravím,
nikde jsem to tu nenašel, tak bych se chtěl zeptat. Zjednodušeně mám uloženou entitu sofware s počtem licencí a názvem a druhou entitu použití softwaru s názvem softwaru a počítáčem na který se váže. Pokud chci počet licencí z entity software vypsat v gridu, tak to není problém. Udělal jsem si metodu, která mi přepočítá, kolik licencí mi ještě zbývá, ale zaboha nejsem schopný to do gridu dostat. Nemohl by mi někdo trochu poradit? Předpokládám, že by to mohlo jít přes metodu setRenderer()
Předem děkuji

vojty
Člen | 19
+
0
-

Zduřte,
řešil prosím někdo, jak zobrazit data z M:N relací i s filtrem (Doctrine)? Díky.

Taufic
Člen | 31
+
0
-

A ještě bych měl jeden dotaz. Když v subgridu přes handle delete smažu řádek, tak mě subgrid vypíše žádné záznamy a musím ho rozkliknout aby se zbylé zobrazily. Dá se to nějak ošetřit?

EDIT: nic jsem neřekl, nic jsem nenapsal :) Jen chybějící redirect ;)

Editoval Taufic (11. 3. 2013 15:09)

forkman
Člen | 72
+
0
-

Nifty: Stránkování mám zapnuté, ale prostě se mi to neinvaliduje, nemám s tím moc zkušeností, ale jiné invalidace při ajaxových akcích mi fungují. Jak se to tedy správně má invalidovat? Když to bude o trochu kódu navíc, to mi nevadí, ale je to trochu matoucí, když vyskočí flashMessage, ale data v gridu se nezmění. Ještě dodám že to jsou mé akce, není to inline editace. Díky

deter
Člen | 5
+
0
-

Ahoj,
nejprve diky za super grid.

Vim, ze jde pridat filtrovani (setSelectFilter) a filtrovat i podle sloupce z jine tabulky (setTableName), ale jde filtrovat podle jineho sloupce? Neco jako „v gridu si vypisuju description“, ale filtrovat chci podle hodnoty id, kde „id“ <⇒ „description“. Je to mozne? Diky.

lukyn
Člen | 18
+
0
-

Ahoj,
řešil někdo tento grid na NOTORM ? Mě to končí hláškou: Illegal string offset ‚dany field‘, (Column.php Line: 134). Nevíte někdo, kde je chyba ?

Přihoďte příklad, díky

Díky

michal.lohnisky
Člen | 64
+
0
-

Ahoj,

chci se zeptat, zda se musí pro každý grid znovu dědit celá třída (asi ano, když je abstract), zda to nejde udělat tak, že bych si vytvořil pouze továrničku, jako se to dá dělat s formuláři. Pokud to ve stávající verzi nejde, napadlo mě následující řešení:

Cílem je možnost používat Grid v presenteru následujícím způsobem:

	protected function createComponentGuestControl()
	{
		/* staré použití:
		return new GuestControl($this->context->guests);
		*/

		// nové použití:
		$presenter = $this;

		$control = new Grid($this, 'guestControl');	// *** pozn. 1

		$control->setDataSource(
			new \NiftyGrid\DataSource\NDataSource(
				$this->context->guests->findAll()
			)
		);

		$control->setDefaultOrder("name ASC");

		$control->addColumn('name', 'Jméno')
			->setTextFilter();

		$control->addButton("delete", "Odstranit")
			->setClass("delete")
			->setLink(function($row) use ($presenter){return $presenter->link("guestControlDelete!", $row['id']);})
			->setConfirmationDialog(function($row){return "Opravdu chcete smazat hosta $row[firstname] $row[surname]?";});

		$control->afterConfig();	// *** pozn. 2

		return $control;

	}

	public function handleGuestControlDelete($id)
	{
		$this->context->guests->delete($id);
	}

*** pozn. 1: Část kódu před řádkem $this->configure($presenter); ve funkci attached by se přesunula do kontruktoru a proto by musel být rodič znám již v konstruktoru.

*** pozn. 2: Část kódu po řádku $this->configure($presenter); ve funkci attached by se přesunula do funkce afterConfig (pracovní název) a nebo by se to nějak řešilo přes render nebo beforeRender nebo tak něco.

Výhody které z toho plynou jsou:

  1. Není potřeba vždy vytvářet nový soubor a do kontruktoru nové třídy předávat všechny potřebné modely. Což je zvlášť výhodné, pokud grid použijete pouze na jednom místě.

Zdá se Vám toto vylepšení přínosné? Případně jaké vidíte nevýhody? Pokud by se to zahrnulo do oficiální verze, kdy by to asi tak bylo na GitHubu?

MW
Člen | 626
+
0
-

Zdravím,

poradte me prosim. Mam dva sloupce v gridu OD a DO.
Potrebuji vyselektovat aktivni dle těchto dvou datumu, pricemz DO muze byt prazdny.. tedy také aktivni.

Jak to nejlepe na tomto gridu resit?

Prednastavene filtry jsem zatím resil v sablone a poslanim pole $args, ale v tomto pripade asi potrebuju upravit tu variantu s prazdnym DO …

Diky!

mfajfr
Člen | 26
+
0
-

Ahoj,
měl bych dva dotazy ohledně této komponenty.

Za 1.) Nastavím tabulku do NDataSource (používám notORM) a hlásí mi to chybu:
Call to undefined method NotORM_Result::getPrimary()
Vyřešil jsem zkomentováním v metodě public function getPrimaryKey() řádku:
return $this->table->getPrimary();
Za 2.) Poté chci na jednotlivé sloupce nasadit filtry a napíše mi to:
Undefined index:

Vím, co problémy „znamenají“, ale nejsem schopný přijít na řešení.

Předem díky za rady.

btw hledal jsem to tady a nenašel. Kdyby to tu bylo, tak se omlouvám, že to píši znovu.

Kryšpin
Člen | 27
+
0
-

Nahoď zdrojáky a na jakém řákdu, souboru, ti to tu chybu vyhodí. Takto nám to nic neřekne (jen to, že tam není nadefinován nějaký index) :o)

mfajfr
Člen | 26
+
0
-

Nasadím na jakýkoliv sloupec jakýkoliv filter a vyhodí to chybu.
Filtr zadám např. takto:

<?php
$this->addColumn('sellPriceTAX', 'PC (vč. DPH)')
             ->setRenderer(function($row){
                 $sellPriceTAX = new VersioPrice($row['sellPriceTAX']);
                 return $sellPriceTAX->getFormattedPriceWithTax() . ' Kč';
             })
             ->setNumericFilter();

?>

`
Notice

Undefined index:

File: …\libs\NotORM\Row.php Line: 159

149:
150: /** Get value of column
151: * @param string column name
152: * @return string
153: */
154: function offsetGet($key) {
155: $this->access($key);
156: if (!array_key_exists($key, $this->row)) {
157: $this->access($key, true);
158: }
159: return $this->row[$key];
160: }
`

Vidím, že se to zadrhne v notORMu, ale nedokážu si to nějak spojit. Nemůže to mít návaznost s problémem č.1?

Kryšpin
Člen | 27
+
0
-

Vypadá to opravdu na chybu v definici tabulky do NDataSource. Máš správně strukturu tabulek? Jinde ti dotazování funguje?

Kryšpin
Člen | 27
+
0
-

A máš poslední verzi notORMu?

mfajfr
Člen | 26
+
0
-

Verze je nejnovější. Ještě jsem to pro jistotu znovu stáhl a nahrál.
Co se týče dotazování, tak by mělo být asi v pořádku, protože, když udělám výpis (nikoliv do NiftyGrid) stejného dotazu, tak to projde.
Pro jistotu:

<?php
$source = new NiftyGrid\DataSource\NDataSource($this->_priceProducts->select('product.id, catNumber, buyPriceTAX, (buyPriceTAX/1.21) AS buyPrice, sellPriceTAX, (sellPriceTAX/1.21) AS sellPrice, markUp, name, QU, catNumber, address, provider_id, provider.namePder'));
        $this->setDataSource($source);
?>
MW
Člen | 626
+
0
-

MW napsal(a):

Zdravím,

poradte me prosim. Mam dva sloupce v gridu OD a DO.
Potrebuji vyselektovat aktivni dle těchto dvou datumu, pricemz DO muze byt prazdny.. tedy také aktivni.

Jak to nejlepe na tomto gridu resit?

Prednastavene filtry jsem zatím resil v sablone a poslanim pole $args, ale v tomto pripade asi potrebuju upravit tu variantu s prazdnym DO …

Diky!

Nikdo nevi?

boob
Člen | 21
+
0
-

zdar,

chcel by som skusit tento datagrid, ale nejako si neviem poradit s instalaciou cez Composer, dostavam vacsinou tuto hlasku

Problem 1
  - The requested package nifty/nifty-grid could not be found in any version, there may be a typo in the package name.

skusal som rozne verzie (nasiel som ich kade-tade – packagist, addons.nette, github), ale ani jedna nesla

"nifty/nifty-grid": "*",
"nifty/nifty-grid": "master",
"Niftyx/NiftyGrid": "*",
...

a ak pridam Nette repozitar do Composeru, tak sa neda stiahnut https://componette.org/search/?q=packages.json
vie mi niekto pomoct?
Dakujem

EDIT // este jedna vec.. na githube je najnovsia verzia alebo ju mam hladat niekde inde? pretoze vidim, ze je tam 7 months ago

Editoval boob (22. 5. 2013 17:09)

lovec
Člen | 13
+
0
-

Z packagist mi to taky nešlo. I když ho tam vidím
https://packagist.org/…y/nifty-grid

Ale funguje z nového addon portálu. Stačí přidat nový addon portál jako repozitory

"repositories": [
    {
        "type": "composer",
        "url": "https://addons2.nette.org/"
    }
]

Pak už jen standardně

"nifty/nifty-grid": "dev-master"
majkl324
Člen | 13
+
0
-

Mám menší problém NiftyGrid vůbec zprovoznit nechat ho vykreslit nějakou tabulku.

Skončím na této chybě:

Call to undefined method NiftyGrid\DibiFluentDataSource::getPrimary().

HomepagePresenter.php

class HomepagePresenter extends ...
{
    ....

    public function createComponentUsersGrid()
    {
        return new \AdminModule\UsersGrid(new \NiftyGrid\DibiFluentDataSource(\dibi::select('id, first_name, last_name, nick_name')->from('users'), 'id'));
    }
}

UsersGrid

class UsersGrid extends \NiftyGrid\Grid
{
    protected $users;

    public function __construct($users)
    {
        parent::__construct();
        $this->users = $users;
    }

    protected function configure($presenter)
    {
        $source = new \NiftyGrid\NDataSource($this->users);
        $this->setDataSource($source);

        $this->addColumn('id', 'ID', '150px');
        $this->addColumn('first_name', 'First name', '150px');
        $this->addColumn('last_name', 'Last name', '150px');
        $this->addColumn('nick_name', 'Nick name', '150px');
        $this->addColumn('email', 'E-mail', '150px');
        $this->addColumn('registration_date', 'Registration Time', '150px');
    }
}

Proces ale skončí na $this->setDataSource($source);

Jak se dá tento problém prosím vyřešit? Nikde jsem nenarazil na řešení používající dibi, i když je v dokumentaci v DibiFluent podporováno. Díky

ryvova
Člen | 9
+
0
-

MW napsal(a):

Je prosím nějaka možnost, aby validace na vkladaní/editaci probihala stejně, jako u klasickeho formu?
Tedy aby se nezaviral form, jen to vyhodilo hlasku? Ted me to dela to, ze to zavre form a do flashmsg to vypise, ze jste nezadali, ale ostatni spravne vyplneny pole jsou taky pryc…

Pouzivam to takto:

$this->getColumnInput('name')->addRule(\Form::FILLED, 'Nezadali jste název.');

Mám stejný problém, víte někdo jak na to?

Díky

Bedna
Člen | 7
+
0
-

Prosím Vás, jak je to tedy s ukládáním stavu? Řeším problém, že mám grid ve kterém přejdu na 2 stránku. Poté se překliknu na stránku, kde grid není a vrátím se zpět a chtěl bych, aby byla zobrazená druhá stránka. Moc děkuji za popošťouchnutí.

S uložením všech věcí ohledně gridu nemám problém, problém mám jen se stránkou, snažil jsem se i takto $this->etPaginator()->setPage(2); v attached metodě, ale pak nefungují odkazy na stránkování…

kbtm
Člen | 22
+
0
-

Přeji dobrý den,

mám dojem, že toto niftygrid neřeší … Musel jsem si to sám dosmolit přes session.

Snad se ozve autor …

S pozdravem kbtm

Bedna
Člen | 7
+
0
-

Děkuji za odpověď, právě, že to tak také smolím, jen nemůžu přijít na to, jak ho donutit, aby zobrazil jinou stránku :-/

kbtm
Člen | 22
+
0
-

Na odkazu : http://www.kbtm.cz/…oad/Grid.zip je „můj“ upravený Grid.php. Příslušná volání session jsou (třeba) kolem 60. řádku, je to tam plné volání debuggeru/firelogu.

Třeba to pomůže …

Neupravoval jste i soubor „grid.js“ pro použití pod „jquery-1.9.1.js“ (tj. pročistit od funkce „live“) ? To mě ještě čeká.

Škoda, že to autor zřejmě pustil – poslední změna je před cca 8 měsíci.

kbtm

hiny
Člen | 35
+
0
-

Zdravím, zrovna dnes jsem zmiňovaný soubor grid.js upravoval pro jQuery ve verzi 1.10.1 (1.9+).

Pročistil jsem jej od funkce .live viz. Changes of Note in jQuery 1.9

Zatím to dle testů vypadá, že vše funguje jak má :-)

Tak snad to někomu pomůže a ušetří trochu času. Zde je ke stažení