ublaboo/datagrid: mocný, rychlý, rozšiřitelný, hezký, anglicky dokumentovaný datagrid

Domki
Člen | 310
+
0
-

Takže jako Datasource dát klasický query, jo to by asi šlo díky ;-)

Pavel Janda napsal(a):

@Domki Ano, přesně jak zmínil @PavelKravčík – pokud chceš položit složitější dotaz přes NDB::query(), použij zmíněný ublaboo/datagrid-nette-database-data-source. Dovolí ti složité dotazy a přitom se nebude fetchovat do paměti celá databáze :) .

CZechBoY
Člen | 3608
+
0
-

@Domki
Tak mělo by jít i Nette\Database\Table\Selection, ne? Grido a určitě i ostatní gridy to umí.

Editoval CZechBoY (25. 8. 2016 20:52)

ryu
Člen | 29
+
0
-

Zdravím, předně díky za povedený datagrid.
Řeším teď zrovna inlineadd a zjistil jsem že mi nefungují validační podmínky v js. Pokud na některé pole nastavím setRequired(), stejně se formulář odešle, ikdyž je pole prázdné. Dělám něco blbě, nebo to prostě grid (zatím?) neumí?

U běžných nette formulářú to funguje jak má…

$p = $this;

        $grid->addInlineAdd()
            ->onControlAdd[] = function($cont) use ($p) {
                $cont->addText("description")->addCondition(Form::FILLED);
                .
				.
				.
        };
pp
Člen | 48
+
0
-

Ahoj, poprosil bych o radu
mam zobrazeny grid a pro kazdou polozku bych chtel v jejim detailu zobrazit dalsi udaje nactene nejakym modelem. Myslel jsem, ze to muze fungovat nejak takto:

$grid->setItemsDetail(function($item) { return $this->serviceManager->getAll($item->id); } );

tohle melo vratit asociativni pole

ale ze sablony pro grid vidim jen promennou $item – ale jak se dostanu k $items_detail ?

{$original_template}

{block detail}
	<h2>{$item->id}</h2>
	<p>Lorem ipsum ...</p>

        {foreach $items_detail as $k => $v}
            <div class="itemdetail">{$k} => {$v}</div>
        {/foreach}

{/block}
romiix.org
Člen | 343
+
0
-

pp napsal(a):

Neskúšal som to, ale asi by som podedil DataGrid a nahradil metódu getTemplate() tak, aby už obsahovala danú premennú.

@PavelJanda Možno by nebolo odveci pridať metódu addVariable() a tieto premenné potom dodávať do šablóny. Bolo by to všeobecne použiteľné riešenie pre tieto problémy.

Pavel Janda
Člen | 977
+
0
-

@romiix.org $grid->getTemplate()->foo = 'bar'

pp
Člen | 48
+
0
-

omlouvam se ale asi bych potreboval jeste postrcit, nejlepe na priklade

chtel bych dosahnout toho, ze se v gridu v detailu pro kazdy radek na zaklade vysledku z modelu serviceManager treba podle $item->id vrati pole hodnot (ruzne delky) ktere bych chtel zobrazit v sablone

neco jako

$grid->getTemplate()->data = $this->serviceManager->getAll($item->id);
{$original_template}
{block detail}
    <h2>{$item->id}</h2>
    <p>Lorem ipsum ...</p>
	{$data}
{/block}

ale jak se dostanu k promenne $item ?
Bohuzel nemam dost zkusenosti na to abych se orientoval v celem kodu gridu takze mi neni jasny jak zajistit to individualni naplneni sablony pro detail.

pp
Člen | 48
+
0
-

jeste trochu odbocim, zkousel jsem to nejak resit pres vnoreny formular ale uz pri pouziti
prikladu z dokumentace koncim na chybe

end() expects parameter 1 to be array, null given
60: $this->global->formsStack[] = $formContainer = $_form = end($this->global->formsStack)["items_detail_form-$item->id"];
$grid->setTemplateFile(__DIR__ . '/customer_grid.latte');
$grid->setItemsDetail();
$p = $this->getPresenter();
$grid->setItemsDetailForm(function(Nette\Forms\Container $container) use ($grid, $p) {
	$container->addHidden('id');
    $container->addText('surname');
    $container->addSubmit('save', 'Save')
    	->onClick[] = function($button) use ($p) {
        	$values = $button->getParent()->getValues();
            $p['customerGrid']->redrawItem($values->id);
       	};
});
{formContainer items_detail_form-$item->id}
	{input id, value => $item->id}
	{input name, value => $item->name}
	{input save}
{/formContainer}
Domki
Člen | 310
+
0
-

Použil jsem jako datasource ublaboo/datagrid-nette-database-data-source
Jak můžu přidat ItemsDetail?
Dělám to pomocí

$grid->setItemsDetail($detail = TRUE, $primary_where_column = $grid->getPrimaryKey());

Kdy jako datasource mám query ktere se sklada z 3 joinu. Mám ale problém s id. V query je více id ček. Když je přejmenuji přes Alias na p_id a nastavím $grid->setPrimaryKey(‚p_id‘); tak to nefunguje protože při kliknutí na detail se přída podle primaryKey where kde alias není znám.
Pokud zkusím nastavit PrimaryKey na ‚products.id‘ pres teckovou notaci tak to vypíše chybu Cannot read an undeclared column ‚products‘.
Jak tedy určit id pro primaryKey aby šel ItemDetail?

edit: Zde jsem osekal daný kod, když mám v query vice tabulek, nevím jak definovat primary key, bud to píše že id není jednoznačne, alias na sloupec to nezna, a tabulku taky ne. Stejný problém se projeví všude při praci s primarním klíčem(ne jen u itemsdetail) tedy např u callbacku pro statusColumn.

	public function createComponentProductsGrid()
	{
		$grid = new DataGrid();
		$query =
			'SELECT p.id, b.id as b_id, p.name AS p_name, b.name AS b_name
				FROM products AS p
				LEFT JOIN brands AS b
				 ON p.brands_id = b.id';

		$params = [];
		$datasource = new NetteDatabaseDataSource($this->ndb, $query, $params);
		$grid->setPrimaryKey('products.id');
		$grid->setDataSource($datasource);
		$grid->addColumnText('name', 'Název', 'p_name')->setSortable();
		$grid->addColumnText('brandName', 'Značka', 'b_name')->setSortable();
		$grid->setItemsDetail($detail = TRUE, $primary_where_column = $grid->getPrimaryKey());

		return $grid;
	}

Díky za pomoc

Editoval Domki (6. 9. 2016 13:24)

pitr82
Člen | 121
+
0
-

@pp Jestli používáš verzi nette 2.4, pak je tam chyba viz.: Tady

Pavel Janda
Člen | 977
+
0
-

@Domki Můžeš zkusit master plus pár úprav?

1,

$query =
    'SELECT p.id AS p_id, b.id as b_id, p.name AS p_name, b.name AS b_name
    FROM products AS p
    LEFT JOIN brands AS b
        ON p.brands_id = b.id';

2,

$grid->setPrimaryKey('p_id');

Co je v masteru jinak: třída Row, která rozhoduje o způsobu získání dat z jedné položky, neznala třídu Nette\Database\Row, tak to spadlo do synfoního property access (kde se tečka znamená něco jiného). Již o ní ví.

Editoval Pavel Janda (7. 9. 2016 23:17)

Domki
Člen | 310
+
0
-

@PavelJanda Stáhl jsem „ublaboo/datagrid“: „@dev",
verze "ublaboo/datagrid“: „dev-master“ mi nešla stahnout kvuli minimální pozadavkum: ublaboo/datagrid-nette-database-data-source v1.0.5 requires ublaboo/datagrid ~2.3|~3.0|~4.0

Ale po kliknutí na akci to vyhodí:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'p_id' in 'where clause' search►

Caused by PDOException
SQL

SELECT p.id AS p_id, b.id AS b_id, p.name AS p_name, b.name AS b_name
FROM products AS p
LEFT JOIN brands AS b ON p.brands_id = b.id
WHERE p_id = '1'

Ten alias jako primary_key si myslím že nebude správně protože když daný sql spustím pres phpmyadmin tak to vypiše stejnou chybu a co jsem našel tak ve where nejsou známy aliasy.
Proto by asi chtělo nacpat plnout definici (products.id nebo p.id) jako primaryKey. Coz v phpmyAdmin už pak funguje.

BtW. Podle dokumentace jsem pochopil že toto má být právě pro propojení více tabulek, kde budu mít i vice id.

jirkag
Člen | 1
+
0
-

Zdravím, předně musím autorovi říci super práce.

  1. Dotaz začátečníka: Lze u GroupAction vynutit, aby to nebyl ajaxový dotaz. Zkoušel jsem pak záznamy tisknout přes mPdf do souboru a to zřejmě takhle nejde. Děkuji za případný námět kudy lze.
  2. Inspirace: Líbilo by se mi pro Column prvek „ActionList“ (např.) – jedno tlačítko s více možnostmi (něco jako ColumnStatus, ale pro Action).

Hezký den všem

flamengo
Člen | 131
+
0
-

Ahoj, nebyla by prosím nějaká ukázka či odkaz jak pomocí Nette\Database dostat data do TREE gridu? V dokumentaci je příklad pro DIBI, ale s tím nejsem vůbec kamarád :( Předem díky moc.

romiix.org
Člen | 343
+
0
-

jirkag napsal(a):

  1. Dotaz začátečníka: Lze u GroupAction vynutit, aby to nebyl ajaxový dotaz. Zkoušel jsem pak záznamy tisknout přes mPdf do souboru a to zřejmě takhle nejde. Děkuji za případný námět kudy lze.

Skúsil by som aj pri ajaxovom dotaze:

$presenter->sendResponse(new Nette\Application\Responses\FileResponse(/* ... */));
  1. Inspirace: Líbilo by se mi pro Column prvek „ActionList“ (např.) – jedno tlačítko s více možnostmi (něco jako ColumnStatus, ale pro Action).

Issue existuje, všetci oceníme PR ;)

Pavel Janda
Člen | 977
+
+6
-

Kruci ten ActionList, MultiAction (call it whathever you want) už chce víc lidí. Zmíněné issue jsem znovu otevřel. Pokud alespoň pár lidí nasype plusítka, tak to přidám. :)

sucho
Člen | 57
+
0
-

Ahoj @PavelJanda ako by sa dalo jednoducho zmeniť ikonky na material design

aktuálne je tam FontAwesome

<span class="fa fa-trash-o"></span>

a potreboval by som

<span class="material-icons">delete</span>

v Ublaboo\DataGrid\DataGrid máš

	/**
	 * @var string
	 */
	public static $icon_prefix = 'fa fa-';

ale nieje tam žiaden setter ani getter
je to pridávané rovno do template v rendri
dokážem si preťažiť template zavolať parent a tú premenú tam poslať
ale v iných súboroch voláš rovno tú statickú metódu

	public function tryAddIcon(Html $el, $icon, $name)
	{
		if ($icon) {
			$el->addHtml(Html::el('span')->class(DataGrid::$icon_prefix.$icon));

			if (strlen($name)) {
				$el->addHtml('&nbsp;');
			}
		}
	}

Editoval sucho (14. 9. 2016 9:57)

CZechBoY
Člen | 3608
+
+1
-

Normálně přepiš tu statickou veřejnou proměnnou (asi je veřejná aby do ní mohl kdykoliv kdokoliv zapisovat a číst :-)).

Hug0
Člen | 35
+
0
-

Ahoj,
předně díky za super doplněk a perfektní dokumentaci. Mám na stránce dva datagridy, které umožňují inline editaci. Po potvrzení (uložení) změny v jednom z nich, se mi mimo jiné vrací „_datagrid_inline_edited“ s id upraveného záznamu. Problém je v tom, že se mi funkce níže (github) vykoná pro oba datagridy. Dělám něco špatně? :)

<script>
$.nette.ext('datagrid.after_inline_edit', {
  success: function(payload) {
    if (payload._datagrid_inline_edited) {
      $('tr[data-id=' + payload._datagrid_inline_edited + '] > td').addClass('edited');
      return $('.datagrid-inline-edit-trigger').removeClass('hidden');
    } else if (payload._datagrid_inline_edit_cancel) {
      return $('.datagrid-inline-edit-trigger').removeClass('hidden');
    }
  }
});
</script>
igor.pocta
Člen | 100
+
0
-

Ahoj,

jde u TreeView nějak zaměnit setSortableHandler za callback?

Mám celý grid v komponentě ale při této změně se mi to odvolává na presenter a já bych to chtěl mít v rámci komponenty.

Nebo jdu na to špatně a celý grid by měl být přímo v presenteru?

Díky,

I.

Pavel Janda
Člen | 977
+
+1
-

@Hug0 Neděláš, chybka je v JS datagridu, upravím ten selector, aby se hledal jen patřičný datagrid .

@igor.pocta Můžeš změnit handler, aby se volalo sortování v komponentě ($grid->setSortableHandler('myComponent:sort!');), ale JS datagridu zatím neumí prefixnout název komponenty, pokud je sortable handler mířen na komponentu. Issue na to již existuje (https://github.com/…agrid/issues?…). Upravím o víkendu. :)

Hug0
Člen | 35
+
0
-

@PavelJanda Super, díky!

revoke
Člen | 36
+
0
-

Mám pocit, že v definici boweru chybí část s bootstrap-select, protože se vůbec nenainstalovala a v logu ani není vidět.

Pavel Janda
Člen | 977
+
0
-

@revoke Není to povinná položka, viz http://ublaboo.org/datagrid#…

Editoval Pavel Janda (14. 9. 2016 15:34)

revoke
Člen | 36
+
0
-

@PavelJanda jj, pro ostatní bower install silviomoreto/bootstrap-select. Děkuji.


Zkoušel jsem ještě další dvě věci. Postupoval jsem podle návodu, ale nefunguje:

  1. ColumnStatus – buttony se vykreslí, ale po kliknutí se nezobrazí popup s volbami a tlačítka na kliknutí nijak nereagují.
  2. Hideable Columns – v záhlaví sloupce nevidím šipky pro skrytí sloupců, nevidím ani tlačítko v pravém horním rohu, kde se dají sloupce nastavit. Vygenerované jsou, ale nejde na ně kliknout.

-- edit
Výše popsané potíže způsoboval právě bootstrap-select. Ikony nebyly vidět, protože jsem používal glyphicon, nicméně stačilo přidat do CSS:

.glyphicon-caret-down:before{content:"\e259";}
.glyphicon-gear:before{content:"\e019";}
.glyphicon-check-square-o:before{content:"\e067";}
.glyphicon-square-o:before{content:"\e157";}

Editoval revoke (15. 9. 2016 10:54)

Re4DeR
Člen | 71
+
0
-

Ahoj, super grid a díky za nej.

Našel jsem asi bug při řazení sloupců.

1. kliknu na sloupec poprvy – seřadí se, kliknu podruhý, seřadí se obráceně. Pokud kliknu potřetí tak se asi grid pokusí seřazení sloupce úplně vyhodit. Bohužel mi grid tvoří takovou to query:

SELECT *
FROM `servery`
ORDER BY `domena` 0

což háže chybu.

Používám nette dtb table.

Stejné chování je vidět v demu zde http://ublaboo.org/datagrid/filter a zde http://ublaboo.org/datagrid/column při řazení podle slupce „name“.

Pokud vyvolám chybu a pak refreshnu stránku tak už mám jen chybu 500.

Pavel Janda
Člen | 977
+
0
-

@Re4DeR Můžeš ukázat prosím celou tvojí továrničku komponenty? I s připraveným ndbt query?

pitr82
Člen | 121
+
0
-

@PavelJanda Ahoj,

Když mám grid jako komponentu, jak zavolám action z presenteru ?
Odkazuje mi to samozřejměn na action komponenty.

$grid->addAction('edit', '','**edit**')
		->setIcon('pencil')
		    ->setClass('btn btn-xs btn-default ajax')
		->setTitle('Upravit zprávu');

Editoval pitr82 (16. 9. 2016 14:44)

Re4DeR
Člen | 71
+
0
-

Pavel Janda napsal(a):

@Re4DeR Můžeš ukázat prosím celou tvojí továrničku komponenty? I s připraveným ndbt query?

mám jen v prezenteru

  public function createComponentDomainGrid($name) {
        DataGrid::$icon_prefix = "glyphicon glyphicon-";
        $grid = new DataGrid($this, $name);
        $grid->setDataSource($this->serveryRepository->findAll());
}

serveryRepository mi vraci table.

    public function findAll(){
        return $this->getTable();
    }

    protected function getTable(){
        //nazev tabulky odvodime z nazvu tridy = trida a tabulka se jmenuji stejne
        preg_match('#(\w+)Repository$#', get_class($this), $m);
        return $this->selectionFactory->table(lcfirst($m[1]));
}

a jak říkám – na demu se to podle mě chová stejně ( https://www.evernote.com/…lKY8wBEunrQw )

Editoval Re4DeR (16. 9. 2016 18:52)

CZechBoY
Člen | 3608
+
0
-

Jde nějak filtrovat čas?
Podle názvu funkce addColumnDateTime bych očekával že se zobrazí i čas;
podle názvu funkce addFilterDate chápu, že asi čas filtrovat nebude.

btw. docela bojuju s tim filtrováním datumu na sqlite (ukládá jako unix timestamp).

Taky se mi zdá divný filtrování

  1. dám filtrovat třeba podle jména „abcdef“
  2. odešlu filtrovací form enterem (nešlo by přidat filtrovací tlačítko?)
  3. chci filtrovat podle jména „xyz“
  4. odešlu filtrovací form
  5. filtruju podle jména „abcdef“

datagrid snad nejnovější verze (4.4.12)

Editoval CZechBoY (16. 9. 2016 19:57)

kralik
Člen | 230
+
0
-

Ahoj,
zkouším novou verzi datagridu a Nette mi vyhazuje hlášku „Illegal offset type“ v nette\utils\src\Utils\Html.php:203

v kódu mám grid takto

<?php
...
$grid->addAction('delete', '', 'opravnenisekDel!')
                ->setIcon('trash-o')
                ->setTitle('Smazat')
                ->setConfirm('Opravdu smazat oprávnění pro uživatele %s?', 'uzivatel');
...
?>

Pokud zruším ->setIcon(‚trash-o‘), tak žádný problém není.

<?php
...
$grid->addAction('delete', '', 'opravnenisekDel!')
                ->setTitle('Smazat')
                ->setConfirm('Opravdu smazat oprávnění pro uživatele %s?', 'uzivatel');
...
?>

Zatím jsem neodhalil kde mám botu.

Prosím o radu.
Díky

dusan.ivanco
Člen | 4
+
0
-

Dobrý deň vám prajem.

Som v nette nový a zatiaľ sa len rozhliadam, ale môžem povedať, že tento datagrid je vážne perfektný. Chýba mi na ňom len jeden detail, ktorý sa neodvážim zatiaľ sám upraviť. Jedná sa o addExportCallback. Bolo by možné tam dodať tieto 2 možnosti?

$grid->addExportCallback($text, $callback, $filtered = FALSE, header = FALSE, view = FALSE);

O čo mi ide:

1.) rád by som dostal ako výstup buď všetko čo ide z setDataSource ako je teraz, alebo keď by bolo nastavené view = true aby bol výstup taký ako ho vidím v samotnom datagride (čiže to čo si zobrazím pomocou addColumn*), čiže v podstate to čo vidím v csv vygenerovanom pomocou addExportCsv

2.) taktiež by som rád videl „popis sĺpcov“ pomocou header = true, čiže v prípade view = true by som na začiatku dostal názvy sĺpcov definované v addColumn*, opäť takisto ako je v csv exporte a v prípade view = false by som mal na začiatku samotné názvy sĺpcov ako ich dostanem z setDataSource

Veľmi dúfam, že ste pochopili o čo som sa tu snažil vykoktať a že si nájdete čas na takúto úpravu.

Za všetko vám vopred veľmi pekne ďakujem.

Pavel Janda
Člen | 977
+
+2
-

@Hug0 composer update, JS věc aktualizována

@igor.pocta composer update, JS věc aktualizována

Pavel Janda
Člen | 977
+
0
-

@Re4DeR Mohl bys, prosím, založit issue?

@kralik Mohl bys, prosím, založit issue?

@dusan.ivanco Bod jedna jsem snad pochopil. Bohužel to ale asi nepřidám. :( Máš ale k dispozici třetí parametr metody DataGrid::addExportCallback(..., $fileter = FALSE), kterým můžeš ovlivnit, zda se jedná o data vyfiltrovaná (co, co vidí user), nebo ne.

DataGrid::addExportCallback() slouží ke custom exportům, které si může programátor upravit dle libosti. Takže si to budeš muset upravit.. :)

@CZechBoY U sloupce ColumnDateTime si můžeš zvolit formát výpisu data/času (Y-m-d, nebo třeba H:i, proto má v názvu i čas.)
Filtr pro čas je dobrý nápad, mohl bys založit issue pls?

2, Mooc divné chování. Mohl bys vyrobit sandbox s ukázkovými sqlite daty a prdnout to jako ZIP do issue? Prozkoumám všechno, co jsi psal.

dusan.ivanco
Člen | 4
+
0
-

@dusan.ivanco Bod jedna jsem snad pochopil. Bohužel to ale asi nepřidám. :( Máš ale k dispozici třetí parametr metody DataGrid::addExportCallback(..., $fileter = FALSE), kterým můžeš ovlivnit, zda se jedná o data vyfiltrovaná (co, co vidí user), nebo ne.

DataGrid::addExportCallback() slouží ke custom exportům, které si může programátor upravit dle libosti. Takže si to budeš muset upravit.. :)

No, neviem či sme sa pochopili, hlavne pri bode 1 (ten bod 2 by som aj oželel). V bode 1 som myslel aby som mal možnosť v addExportCallback dostať presne tie dáta čo vidím v samotnom zobrazení, respektíve v csv exporte (addExportCsv). Konkrétny príklad:

<?php
private $counter = 1;

public function createComponentRegister($name) {
  $grid = new DataGrid($this, $name);

.
.
.

  $grid->addColumnText('x1', '#')
    ->setRenderer(function() {
    return $this->counter++;
  });

.
.
.

  return $grid;
}
?>

Predpokladám, že toto do addExportCallback nedostanem

Aj tak ďakujem za skvelú prácu.

Pavel Janda
Člen | 977
+
0
-

@Re4DeR Fixed.

Pavel Janda
Člen | 977
+
0
-

@dusan.ivanco Chápu to. Chceš dostávat již zformátovaná data.. ExportCallback je právě proto, aby sis mohl data upravit ještě dalšími způsoby. Nevím, zda by takovouhle věc využilo víc lidí. Vždycky však můžeš poslat PR. :)

Re4DeR
Člen | 71
+
0
-

Pavel Janda napsal(a):

@Re4DeR Fixed.

Super, vypadá to ok, díky!

Editoval Re4DeR (19. 9. 2016 14:34)

jean_cz
Člen | 12
+
0
-

Ahoj,

řeším problém s metodou addAction. Nepřišel jsem na způsob jak předat „action“ s jinými parametry než jsou data ve sloupcích.

Dejme tomu, že chceme zavolat action „print“ z presenteru „Printer“, která přijíma dva parametry id a velikost stránky – Printer:print(12, self::PAGE_SIZE) kde druhý parametr je konstanta a tedy se v datasource nenachází.

Nevěděl by někdo?

Díky.

Pavel Janda
Člen | 977
+
+2
-

@jean_cz Action zatím neumí přidání „externích“ parametrů. Ale můžeme to přidat, jelikož se po tom ptal i někdo jiný. Mohl bys založit issue pls?

jean_cz
Člen | 12
+
0
-

@PavelJanda Díky, issue jsem přidal.

Domki
Člen | 310
+
0
-

Čau lze nějak předat do šablony datagridu nějakou dodatečnou proměnou? například vygenerovaný odkaz na signal v presenteru kde vytvařím komponentu datagridu?
Díky

Pavel Janda
Člen | 977
+
0
-

@Domki Ano.

Edit: :D

Je to normálně komponenta, takže do ní můžeš šáhnout, respektive do její šablony:

$this['myGrid']->getTemplate()->foo = 'bar';

Editoval Pavel Janda (25. 9. 2016 14:19)

Domki
Člen | 310
+
0
-

Dík funguje, když to volam z render..().
Já to zkoušel při vytváření comonenty jako $grid->getTemplate→ a to nešlo že není připojena komponenta

Pavel Janda napsal(a):

@Domki Ano.

Edit: :D

Je to normálně komponenta, takže do ní můžeš šáhnout, respektive do její šablony:

$this['myGrid']->getTemplate()->foo = 'bar';
Pavel Janda
Člen | 977
+
+1
-

@Domki Můžeš už ze začátku připojit presenter jako rodiče:

public function createComponentFooGrid($name)
{
	$grid = new DataGrid($this, $name);
}

Editoval Pavel Janda (25. 9. 2016 18:44)

Domki
Člen | 310
+
0
-

O tom jsem nevěděl, funguje díky

FTCP
Člen | 6
+
0
-

Zdravíčko,

měl bych dva dotazy. Lze nějakým způsobem zakázat v items per page „All“ ? A ještě ohledně DatePickeru při filtrování data nemohu u Datepickeru rozjed českou lokalizaci, jde to nějakým způsobem vyřešit ?

předem díky za odpovědi ;-)

dusan.ivanco
Člen | 4
+
0
-

Dobrý deň.

Pripájam sa ku kolegovi: https://forum.nette.org/…any-datagrid?p=11

Ten inline edit je vážne bomba, ale bez join-ov voľajako dosť ochudobnený.

Mimochodom, jedná sa o dibi

Ďakujem veľmi pekne.

Editoval dusan.ivanco (28. 9. 2016 6:56)

Domki
Člen | 310
+
0
-

Když mám inline editaci velkou, tak mi u formulářů funguje klasická nette validace Filled, Integer…
Když přidám ale inline přidávání s validaci, tak se mi hadají inputy, a ač editace je validni tak to háze hlášky.
Problém nejspíš bude že u obou je stejný název: $container->addText(‚name‘, '')
Když ale u přidávaní změním název tak se inputy vůbec nevykreslí.
Jak toto opravit?
díky

Editoval Domki (28. 9. 2016 10:15)