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.
Tomáš Jablonický
Člen | 115
+
0
-

Ahoj,

narazil jsem na problém. Potřeboval bych do gridu přidat sloupce, který je nezávislí na sloupci v tabulce – neexistuje. Prostě chci něco jako:

<?php

$this->addSloupec('Obrázek produktu') //není definováno o jaký sloupec jde
		->setRenderer(function ($row) {
				//zde si vykreslím obrázek
			});
?>

Nikde jsem nenašel jestli toto NiftyGrid umí. Zatím jsem to řešil využitím sloupce, který nepotřebuji vykreslit, ale to mě nepřijde jako moc dobré řešení. Jestli to již NiftyGridy umí, tak se omlouvám za zbytečný příspěvek a prosím o ukázku.

czhyenacz
Člen | 12
+
0
-

TO: Jablon
Já to dělám například takhle:

$this->addColumn('nahraniobjednavkynabidky', 'Nahrani objednavky nabidky', '110px', 30)
		->setRenderer(function($values) use ($presenter){echo \Nette\Utils\Html::el('a')->href( $presenter->link('Admin:Nahraniobj', $values["mail"]))->target('_blank')->setClass("load");})


                      ;

Což mi umožňuje tam přidat sloupec s odkazem na konkrétní akci, aniž by byla jako button v pravém „menu“. Metal

czhyenacz
Člen | 12
+
0
-

Vzpomněl jsem si ještě na jednu věc:

$this->addSubGrid("trideni", "třídění")
                     ->setGrid( new SpravaObjednavkyDodavateleGrid( dibi::select('*')->from('dodavateleObjednavka')->where('cisloObj = %s',  function($row) {
             return string($row['cisloObj']);
         }))


                             ) ;

Do podmínky where se snažím dostat hodnotu, co se najde v danném řádku v sloupci cisloObj, ale dibi vrací "SQL translate error " ; ;
netušíte kde mám chybu ? Dal jsem tam i ten převod na string, ale pořád nic. Nebo není nějaký trik jak získat hodnotu z aktuálního řádku bez toho function($row) ? Budu to potřebovat na ještě v jednom případě, kdy bych to rád použil do výběru pro selectEditable.
Děkuji za případnou pomoc.

kedrigern
Člen | 102
+
0
-

Tak jsem trochu více vyzkoušel a skutečně pěkná práce.

Lze nějak akce dávat i do jiného než posledního sloupce? Nebo alespoň do několika sloupců? Např. akci smazání bych měl raději úplně jinde než nějaký jednoduchý handle, který jen přepíná mezi dvěma hodnotami.

boob
Člen | 21
+
0
-

Helou, rozhodol som sa vyskusat nakoniec aj tento grid, ale hned na zaciatku som zistil, ze sa neda ako DataSource dat custom pole riadkov. Je potrebne si spravit vlastny DataSource, ktory to nejako obsluzi? Ja data ziskavam requestom na server a vrati sa mi pole, z ktoreho si vyberiem, co potrebujem a chcel by som to naplnit do gridu (rovnako ako ine gridy, napr TwiGrid), ale na tomto gride sa mi velmi pacia SubGridy :)

vie mi niekto pomoct alebo si treba spravit custom DataSource?
dakujem

Jan Mikeš
Člen | 771
+
0
-

Ahoj, mam takovy problem.
Chci pouzivat grid v komponente jako subkomponentu, ale tvori se spatne nazvy inputu (nepredava se jim nazev parenta).

Predpokladejme, ze grid se jmenuje „grid“ a je vytvaren klasicky v tovarnicce createComponentGrid() – tato tovarnicka je umisten v komponente „parent“ ktera te vytvarena v presenteru pomoci createComponentParent() – v parent.latte (sablone pro komponentu parent) se grid vykresluje normalne {control grid}

Po odeslani filteru, nebo strankovani, nebo cehokoliv, chybi u get parametru prefix parent- takze parametry vypadaji normalne „grid-filter[something]=value&grid-perPage=20“ coz je ale spatne!!!
Pokud rucne prepisi parametry na „parent-grid-filter[something]=value&parent-grid-perPage=20“ parametry se objevi v inputu a grid zareaguje tak jak ma.

Jedna se o bug, nebo jsem nekde neco prehlidl? Je pro me momentalne nevyhnutelne abych mel grid jako subkomponentu. V mem pripade je to jeste trochu komplikovanejsi, grid je az 3ti potomek komponenty (pokud jsem doplnil gety ve tvaru parent1-parent2-grid-filter[]… tak fungovalo), nicmene test s pouze 1 vnorenou komponentou jsem provedl a s naprosto stejnym problemem.

Pravdepodobne bude stacit, kdyz se upravi pojmenovani inputu, aby tam byl zahrnut cely strom komponent az po hlavniho predka. Nejake rady?

Tomáš Jablonický
Člen | 115
+
0
-

@czhyenacz: asi jsme si špatně rozuměli nebo jen na půl :-). Potřebuji přidat sloupec takový, který neexistuje v tabulce. To řešení co jsi navrhl, je sice funkční ale trochu jako drbání pravou rukou za levým uchem :-) (také to používám, ale …).

Prostě bych potřeboval přidat sloupce nezávislý na existenci sloupce v tabulce a to NiftyGrid asi zatím neumí (přemýšlím, že si to tam doprogramuji).

Tomáš Jablonický
Člen | 115
+
0
-

@lexi: ukaž kód jak to děláš

Jan Mikeš
Člen | 771
+
0
-

Popisu nazorne zkracene a zjednodusene, vynecham nedulezite veci (zavislosti atd)

XxxPresenter:

	protected function createComponentDashboard(){
		return new Components\Dashboard(...);
	}

Xxx.latte:

	{control dashboard}

Components/Dashboard.php:

	protected function createComponentBoxX($name){
		return new BookingsBoxX(...);
	}

	protected function createComponentBoxXx($name){
		return new BookingsBoxXx(...);
	}

	protected function createComponentBoxWithGrid($name){
		return new BookingsBoxWithGrid(...);
	}

Components/Dashboard.latte:

{if $user->isInRole('x'}
	{control boxXxxx}
	{control boxXx}
	{control boxWithGrid}
{elseif $user->isInRole('xx'}
	{control boxXxxx}
	{control boxXxx}
{else}
	{control boxX}
{/if}

Components/BoxWithGrid.php:

	protected function createComponentGrid(){
		return new Grids\GridXxx(..., $this->models->getTable()->select("...") );
	}

Components/BoxWithGrid.latte:

{if $rowsInGrid > 0}
	{control grid}
{else}
	Dumb message
{/if}

Zadne prasarny se nekonaji, vse jsem kontroloval, kod je cisty, problem je v primo v gridu, ze nevytvari spravne nazvy inputu, ktere jsou pak predavany do do $_GETu – je potreba predat cely strom predku, ale grid na to prdi a pojmenuje je pouze xxxGrid-ColumnName=value

Cela cesta ke gridu je tedy takovato:
DashboardPresenter > DashboardComponent > BoxXComponent > Grid

Duvod proc mam takto rozdeleny kod je, ze puvodne pred refactorem (vse bez komponent v jednom presenteru), mel presenter cca 1500 radku a byl „trochu“ neprehledny, navic mame nadefinovane „balicky“ komponent dle user role a je hodne pekne vypisovat pak v sablone presenteru pouze {control dashboard} a vse ostatni nechat v komponentach

Asi si to zkusim fixnout sam.

ondra310
Člen | 25
+
0
-

Zdravím, omlouvám se, jestli jsem někde přehlédl. Potřeboval bych udělat, aby se tlačítko „+“ pro subgrid zobrazovalo jen tehdy, pokud subgrid obsahuje nějaké záznamy. Pokud neobsahuje, tak aby tam nebylo, lze to nějak jednoduše udělat?
A ještě jeden dotaz, můžu řádku ve výpise přiřadit vlastní css třídu? Potřeboval bych je různě „obarvit“ na základě vnějších podmínek.

Editoval ondra310 (16. 7. 2013 18:26)

doublemcz
Člen | 15
+
0
-

Ahoj,

řešili jste už někdo persistentní parametery v odděděné komponentě?

use NiftyGrid\Grid;

class BaseGrid extends Grid {

	/** @persistent */
	public $status;
}

V této chvíli je v URL adrese status nastaven (například na new). Když následně dám například změnu stránkování z 20 na 50 tak se parameter vytratí. Máte tušení kde je chyba? :-)

Pokud dám persistentní parameter do presenteru, kde je komponenta použitá tak je to OK, nicméně následně se nedá komponenta jednoduše přesnášet. Například v tomto případě datasource reaguje na na filtr, který je ovládán přes URL. Všude bych chtěl komponentu přenést, tak přijdu o persistentní parametry a musím je jít zkopírovat.

EDIT: možná, že problém je v controlleru při přesměrování viz obrázek Screen

Editoval doublemcz (17. 7. 2013 12:28)

doublemcz
Člen | 15
+
0
-

jiri.pudil napsal(a):

https://doc.nette.org/…n/presenters#…

Bohužel to nepomohlo. Nicméně i tento systém IMHO není správný. Musím na to myslet v případě použití komponenty. Pokud nějaký jiný vývojář použije komponentu a zapomene to do presenteru napsat, tak se grid bude chovat nekorektně (a ten daný vývojář nebude tušit proč).

Nevinho
Člen | 77
+
0
-

Zdravím,
chtěl bych se zeptat, nevíte někdo jak vyřešit když třeba edituju, nebo vkládám nový záznam, aby se v dalším sloupci třeba datum uložilo i datum poslední změny a ve sloupci autor jméno osoby, která tuto akci provedla(přihlášená osoba)?

Díky za každou radu

Re4DeR
Člen | 71
+
0
-

zdravím, neplánuje se podpora razeni podle vice sloupcu ?

czm4rty
Člen | 29
+
0
-

Používám Nette 2.1 + NiftyGrid a nefunguje „Rychlá editace“. Zjistil jsem, že se neodešle formulář, nejspíš kvůli validaci. Když přidám setValidationScope(FALSE), tak se formulář odešle.

		$form[$this->name]['rowForm']->addSubmit("send","Save")
->setValidationScope(FALSE);
Semik
Backer | 135
+
0
-

Při instalaci přes composer dostávám chybu:

`php.exe C:/Users/msemerak/WWW/Test3/composer.phar require nifty/nifty-grid:dev-juznovo -n –no-progress
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
 – Installing nifty/nifty-grid (dev-juznovo 06a2d06)
Cloning 06a2d06d787dbe4d2fd742a6bce702018e61c365

[ErrorException]
Argument 1 passed to Composer\Autoload\AutoloadGenerator::__construct() mus
t be an instance of Composer\EventDispatcher\EventDispatcher, none given, c
alled in C:\Users\msemerak\WWW\Test3\libs\nette\addon-installer\src\Nette\A
ddons\Installer.php on line 207 and defined

require [–dev] [–prefer-source] [–prefer-dist] [–no-progress] [–no-update] [packages1] … [packagesN]
`

Nevím proč, potřebné závislosti mám nainstalované.

elevate
Člen | 31
+
0
-

zkus do příkazu přidat –no-custom-installers (na začátku 2 pomlčky.. nevím proč se nevypisují ;))

Editoval elevate (5. 10. 2013 12:39)

Oli
Člen | 1215
+
0
-

Zdravím,
používám řádkovou editaci. Pokud ukládám něco, co vyhodí výjimku zobrazuju flash message uživateli.

Problém je, že při uložení zmizí formulářové prvky i při vyhození oné výjimky. Potřeboval bych říct niftygridu, že se uložení nepovedlo a ať jen zobrazí flash a nechá formulář jinak bejt. Jde to nějak?

ukládání mám takhle:

try
{
	$self->database->editOrAdd($values['id'], $values);
} catch (\Exception $exc)
{
	$self->flashMessage('Email již v databázi existuje. Údaje nomohli být uloženy.', 'error');
}

díky

Lawondyss
Člen | 106
+
0
-

Ahoj Nifty,

super datagrid.

Jak určím třídu inputu ve filtru? Je na to nějaká metoda, nebo si to budu muset napsat sám?

ryvova
Člen | 9
+
0
-

Zdravím,

nefunguje mi řádková editace/přidávání v subgridu. Nepomohlo ani

$form[$this->name]['rowForm']->addSubmit("send","Uložit")
    ->setValidationScope(FALSE);

Podle debugu to vypadá, že to vůbec nevleze do setRowFormCallbacku v gridu ani do processGridFrom v Grid.php. V hlavním gridu editovatelné položky nejsou, subgrid by měl být editovatelný a měly by tam jít přidávat záznamy.

revoke
Člen | 36
+
0
-

czm4rty uložení řádkové editace enterem nefunguje tehdy, pokud jsou v záhlaví tabulky filtry. Lze to otestovat i v demo s filtry vs. demo bez filtrů. Nifty to vysvětloval před rokem zde.

Tvé řešení jsem však nepochopil (nevím, jak jej aplikovat na grid). Vymyslel jsem tedy toto:

$('input[type="text"][name*="rowForm"]').live('keypress', function(e){
    if ( e.which === 13 ){
      e.preventDefault();
      $(this).closest('tr').find($('input[type="submit"]')).click();
    }
});

Editoval revoke (9. 12. 2013 15:17)

Lawondyss
Člen | 106
+
0
-

Zdravím,

je nějak možno ovlivnit třídu celého řádku na základě DB dat?

Semik
Backer | 135
+
0
-

Mám pocit, že jsem nedávno potřeboval totéž a není to možné.

kbtm
Člen | 22
+
0
-

Přeji dobrý den,

ve standardní instalaci to není.

Protože podpora od autora (asi) už neexistuje, budete si to muset doplnit. Pro každou řádku gridu lze doplnit údaj „id“ a tak se v průběhu vykreslování dostanete kdykoliv (kód/šablona) na aktuální data.
Pak je už ovlivnění způsobu vykreslení jednoduché.

Podobně (pomocí doplněného „id“) jsem si do gridu doplnil (třeba) kontextové menu, závislé na konkrétních datech 1 řádku.

S pozdravem kbtm

n.u.r.v.
Člen | 485
+
0
-

Ahoj, zkouším použít NiftyGrid, ale potřebuji nakopnut – jak zapsat tento sql dotaz:

'SELECT g.ID, g.NAME, g.HASH,
                          (SELECT count(ID) FROM user WHERE FID = "nějaké číslo" AND GROUP_ID = g.ID AND ELETE IS NULL) AS NUMBER
                     FROM group AS g
                    WHERE g.FID = "nějaké číslo" AND g.DELETE IS NULL
                 ORDER BY g.NAME ASC'

Jde mi o vypsání tabulky se skupinami + výpis počtů userů v danné skupině…

Dostávám chybovou hlášku Call to undefined method Nette\Database\ResultSet::getPrimary()

Třída pro tvoření NiftyGridu:

<?php

use \NiftyGrid\Grid;

class ClassNGrid extends Grid {

    protected $articles;
//1109445
    public function __construct($articles) {
        parent::__construct();
        $this->articles = $articles;
    }

    protected function configure($presenter){
        $source = new \NiftyGrid\DataSource\NDataSource($this->articles->getConnection()->query('SELECT g.ID, g.NAME, g.HASH,
                          (SELECT count(ID) FROM user WHERE FID = "nějaké číslo" AND GROUP_ID = g.ID AND ELETE IS NULL) AS NUMBER
                     FROM group AS g
                    WHERE g.FID = "nějaké číslo" AND g.DELETE IS NULL
                 ORDER BY g.NAME ASC'));
        $this->setDataSource($source);
        $this->addColumn('NAME', 'Název skupiny');
        $this->addColumn('NUMBER', 'Počet uživatelů');

    }



}

?>

Editoval n.u.r.v. (7. 1. 2014 15:01)

n.u.r.v.
Člen | 485
+
0
-

Aha, tak jsem zjistil, že NiftyGrid potřebuji klasickou nette DB , ne getConection… Takže potřebuji poradit, jak zapsat následující sql dotaz do nette db …

SELECT g.ID, g.NAME, g.HASH,
                          (SELECT count(ID) FROM user WHERE FID = "nějaké číslo" AND GROUP_ID = g.ID AND ELETE IS NULL) AS NUMBER
                     FROM group AS g
                    WHERE g.FID = "nějaké číslo" AND g.DELETE IS NULL
                 ORDER BY g.NAME ASC

Moc děkuji.

honos
Člen | 109
+
0
-

Pokud si to pamatuji dobre tak musis ji predat neco jako \Nette\Database\Selection.
Ja jsem to vyresil pomoci (pardon, pisi z hlavy)

$control->addColumn('name','Label')
	->setRenderer(function(ActiveRow $row){
		return $row->(ref|related)(<key>)->name; // nebo misto name agregacni funkci nebo select('COUNT(*)').... no proste chapej
	});

ref(<key>) related(<key>) proste odkazuje na tabulku s foreign_key a tam uz pracujes normalne jako s ActivRow od ND. Je to vice dotazu na DB ale ucel to splnilo. Pouzivam to v administraci a tam mi to nevadi..

Jinak by me to taky zajimalo jak to udelat pomoci jedineho dotazu. Resit to pomoci $this->connection->select('table.column, table2:column,..)? Ale v podstate uz prechazim na DIBI tak to nudu muset nejak resit, zase :-/

zapp
Člen | 32
+
0
-

ryvova napsal(a):

Zdravím,

nefunguje mi řádková editace/přidávání v subgridu. Nepomohlo ani

$form[$this->name]['rowForm']->addSubmit("send","Uložit")
    ->setValidationScope(FALSE);

Podle debugu to vypadá, že to vůbec nevleze do setRowFormCallbacku v gridu ani do processGridFrom v Grid.php. V hlavním gridu editovatelné položky nejsou, subgrid by měl být editovatelný a měly by tam jít přidávat záznamy.

Vyřešil/a jsi tento problém? Já na to teď taky narazil a nevím co s tím.

Sedlakos
Člen | 3
+
0
-

zapp napsal(a):

ryvova napsal(a):

Zdravím,

nefunguje mi řádková editace/přidávání v subgridu. Nepomohlo ani

$form[$this->name]['rowForm']->addSubmit("send","Uložit")
    ->setValidationScope(FALSE);

Podle debugu to vypadá, že to vůbec nevleze do setRowFormCallbacku v gridu ani do processGridFrom v Grid.php. V hlavním gridu editovatelné položky nejsou, subgrid by měl být editovatelný a měly by tam jít přidávat záznamy.

Vyřešil/a jsi tento problém? Já na to teď taky narazil a nevím co s tím.

Přidávám se k tomuhle dotazu, nevíte prosím někdo jak to vyřešit ?

ryvova
Člen | 9
+
0
-

Ahoj,

mám následující problém. V gridu mám 2 sloupečky – datum pracovního poměru od a datum pracovního poměru do. Používám řádkovou editaci. A potřebovala bych, aby když datum pracovního poměru do bude < datum pracovního poměru od, tak aby se formulář neodeslal. Zatím jsem vymyslela jen jak to otestovat v metodě setRowFormCallback a zobrazit případnou chybovou zprávu (flashMessage), ale při tomto způsobu zmizí in-line editační formulář a uživatel musí zadávat data znovu.

Děkuji za tip jak to co nejjednodušeji vyřešit

siberit
Člen | 10
+
0
-

Zdravím,

Lze nějakým způsobem nastavit aby se v případě použití subgridu zobrazovali vypisy vnorenych gridu rovnou po načtení stránky a ne až po kliknutí na tlačítko „+“ ?

Př.
momentálně se mi po načtení stránky zobrazí toto: http://prntscr.com/2z8v5j
ale chtěl bych aby se mi zobrazil rovnou rozbaleny takto: http://prntscr.com/2z8wj0

Další otázkou je zda jde nějak vypnout závislost mezi talčítky „+“ které rozbalují subgrid, tak aby po kliknutí na „+“ zustaval subgrid rozbaleny porad a ne jen do chvile kdy se klikne na „+“ u jineho subgridu…

Předem moc děkuju za rady..

mildhouse
Člen | 27
+
0
-

Ahoj,

instalace přes composer hlásí :

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

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

Potential causes
A typo in the package name
The package is not available in a stable-enough version according to your min

imum-stability setting
see <https://groups.google.com/…c/discussion> f
or more details.

Read <http://getcomposer.org/…eshooting.md> for further common
problems.

mpis
Člen | 65
+
0
-

Vypadá to, že vlákno je neříliš živé.
Nicméně zkusím dotaz:
Chci použít tento vynikající grid, ale brání mi v tom jedna chyba, o které nevím zda je to chyba gridu nebo něčeho jiného.
Jde o špatné třídění – když mám slova začínající na a, b, c, A, B, C tak výsledek třídění je
a, b, c, A, B, C, což je špatně. Mělo by být a, A, b, B, c, C.
Nevěděl by někdo poradit?

Šaman
Člen | 2659
+
0
-

A obyčejný select a order by ti to seřadí správně? Jestli ne, tak bude chyba v nastavení řazení v db.

mpis
Člen | 65
+
0
-

Šaman napsal(a):

A obyčejný select a order by ti to seřadí správně? Jestli ne, tak bude chyba v nastavení řazení v db.

Obyčejný select a order mi to seřadí správně.
Navíc mi to při použití třídění v záhlaví sloupce zobrazí o jeden řádek míň.
Asi budu muset použít jiný grid, což se mi ale vůbec nechce.

Nevinho
Člen | 77
+
0
-

Zdravím, mám takový dotaz. Mám tabulku Osoba (ID, jmeno, prijmeni,ID_adresa…) kterou mám spojenou s Info (ID, cas, trvaly_pobyt, ID_osoba,ID_role,ID_stanoviste) a Adresou(ID, ulice, cislo_popisne,ID_obec) kterou mám spojenou s Obec(ID,nazev,psc). Tabulku Info mám ještě spojenou s Stanoviste(ID,IDS,ID_adresa)

Do gridu to všechno, ikdyž to byla celkem fuška vypíšu tímto kódem:

$source = new \NiftyGrid\DataSource\NDataSource($this->osoba->select("osoba.id,jmeno,prijmeni,datum_narozeni,Zakodovane_rodne_cislo AS Rodne_cislo,
                                                                              adresa.ulice,cislo_popisne, adresa.obec.nazev, adresa.obec.psc,
                                                                              email:email, telefon:telefon,
                                                                              doplnujici_info_osoba:identifikator_poplatnika, doplnujici_info_osoba:stanoviste.ids, doplnujici_info_osoba:cas_stanoviste,
                                                                              doplnujici_info_osoba:role.nazev AS role,doplnujici_info_osoba:status.nazev AS status, doplnujici_info_osoba:trvaly_pobyt,
                                                                              doplnujici_info_osoba:zasilat_informace, doplnujici_info_osoba:poznamka"));

A mám problém s tím, jak tyto záznamy editovat a případně vložit nový záznam tak, aby se uložil do všech těchto tabulek (do každé jednotlivý záznam, který vypisuji)

Ukládání a editaci řeším zde:

$self = $this;



        $this->setRowFormCallback(function($values) use ($self, $presenter) {


            $osoba=array('Jmeno'=>$values['jmeno'],'Prijmeni'=>$values['prijmeni'],'Datum_narozeni'=>$values['datum_narozeni'],'Zakodovane_rodne_cislo'=>$values['Rodne_cislo'],'Adresa_ID'=>563);
           // $email =array('Email'=>$values['email'],'Osoba_ID'=>$values['id']);
           // $telefon =array('Telefon'=>$values['telefon'],'Osoba_ID'=>$values['id']);

                if(isset($values['id'])){


                $presenter->context->database->table('osoba')->where("id", $values["id"])->update($osoba);
                //$presenter->context->database->table('email')->where("id", $values["id"])->update($email);
               // $presenter->context->database->table('telefon')->where("id", $values["id"])->update($telefon);

                 $self->flashMessage("Osoba byla upravena", "grid-successful");
    }
    else{
                $presenter->context->database->table('osoba')->insert($osoba);
                //$presenter->context->database->table('email')->insert($email);

                $self->flashMessage("Byla vložena nová osoba", "grid-info");

    }



                }
        );

Za každou radu předěm velice děkuji, protože si s tim lámu hlavu už strašně dlouho a už si nevím rady…

Editoval Nevinho (12. 6. 2014 1:21)

Nezmo
Člen | 7
+
0
-

Zdravím, chtěl bych poprosit o pár rad. Používám Niftygrid a za pomocí dokumentace jsem ho úspěšně zprovoznil, až na pár výjimek.

1. Nejpalčivější je nefunkční filtrování při kódu

$this->addColumn('cele_jmeno', 'Celé jméno', '300px')
            ->setTextEditable()
            ->setSortable(FALSE)
            ->setTextFilter('cele_jmeno'); // bez parametru i s ním

Mi laděnka hází chybu Illegal string offset ‚filter‘ v souboru Niftygrid/Grid.php na řádku 880

2. problémem je nefunkční in-line editace

$this->addButton(Grid::ROW_FORM, "Rychlá editace")
             ->setClass("fast-edit");

a když přidám na zkoušku, abych vyzkoušel jestli proběhne dotaz v setRowFormCallback

$this->setRowFormCallback(function($values){
            $this->databse->query('UPDATE USERS SET prijmeni="hodnota" where username="hodnota"');});

Tak to při jakémkoli kódu (i prázdné) napíše Please select a valid option.

3. problémem je nefunkční funkce ->setConfirmationDialog(„Něco něco“) a nefunkční autocomplete. Mám pocit, že to bude spolu nějak souviset.

Poprosil bych o každou radu. Děkuji :-)

Lukáš Kadlec
Člen | 17
+
0
-

Nezmo napsal(a):

1. Nejpalčivější je nefunkční filtrování při kódu

$this->addColumn('cele_jmeno', 'Celé jméno', '300px')
            ->setTextEditable()
            ->setSortable(FALSE)
            ->setTextFilter('cele_jmeno'); // bez parametru i s ním

Mi laděnka hází chybu Illegal string offset ‚filter‘ v souboru Niftygrid/Grid.php na řádku 880

Řešeno zde