Grido – DataGrid pro Nette

cujan
Člen | 410
+
0
-

CZechBoY napsal(a):

@cujan za XXX bys měl doplnit požadovaný typ sloupce :-) třeba Text

oki, ja som to tam nahodil asi v takomto tvare

$grid->addColumnText('matka', 'Matka')->setCustomRender(function ($row){
				return \Latte\Runtime\Html::el('input', [
         'type'     => 'checkbox',
         'disabled' => 'disabled',
         'readonly' => 'readonly',
         'onclick'  => 'return false',
         'checked'  => $row['matka'] ? 'checked' : null
     ]);});

a mam chybu
Call to undefined static method Latte\Runtime\Html::el().

CZechBoY
Člen | 3608
+
+1
-

@cujan
sry… Html je Nette\Utils\Html

Editoval CZechBoY (1. 11. 2016 21:48)

Šaman
Člen | 2634
+
0
-

Ahoj.

  • Live demo nefungue (404).
  • Snažím se přidat vlastní sloupec s akcemi (je jich víc, tak používám vlastní latte renderer).
<?php
$grid->addColumnText('action', "")
			->setCustomRender(__DIR__ . "/grid.column.action.latte");
?>

Ale pak mi nefunguje export (Neither the property "action" nor one of the methods "getAction()", "action()", "isAction()", "hasAction()", "__get()", "__call()" exist and have public access in class "DibiRow".)
Nepomáhá ani ručně vypsat, jaké sloupce chci do exportu zahrnout. Jak je možné přidat vlastní sloupec, který bude export ignorovat?

  • o5/grido 2.1.2

Edit: Podařilo se mi chybu vyřešit pomocí

<?php
->setCustomRenderExport(function() {return "";});
?>

ale stále se mi ten sloupec objevuje v exportu. Jak ho mohu úplně zakázat?

Editoval Šaman (28. 11. 2016 16:22)

cujan
Člen | 410
+
0
-

caute pouzivam v grido na farebnu upravu riadka tento kod

$grid->setRowCallback(function($row, \Nette\Utils\Html $tr) {
	     if ($row->prijemVydaj == 1) {
		$tr->class[] = 'prijem';

	    }
	    else {
		$tr->class[] = 'vydaj';
	    }
	    return $tr;
	    });

nasledne som vlozil do grido.css

.vydaj{color:red}

prblem je v tom, ze niektore riadku su cervene a niektore nie su…pouzivam bootstrap, a vyzera to tak, ze css bootstrapu mi prepisuju grido.css

da sa s tym nieco robit?

vdaka

CZechBoY
Člen | 3608
+
0
-

@cujan musíš udělat silnější selektor, nebo dát k pravidlu !important.

cujan
Člen | 410
+
0
-

CZechBoY napsal(a):

@cujan musíš udělat silnější selektor, nebo dát k pravidlu !important.

@CZechBoY co je silnejsi selektor? resp. ako sa pouziva important?

CZechBoY
Člen | 3608
+
0
-

@cujan pocitani vahy/sily http://specificity.keegan.st/

.vydaj {
    color: #cecece !important
}
TomasR
Člen | 6
+
0
-

Ahoj,

chci se zeptat, jestli je možné nastavit <td style="background-color:""> ve sloupci z dat, která vkládám do sloupce?

Snad je můj dotaz srozumitelný. Díky za odpovědi.

cujan
Člen | 410
+
0
-

caute potrebujem na stlpeec, ktory zobrazujem cez cudzi kluc nasadit setFilterSelect()

ako nato ?

$grid->addColumnText('ekonomikaKategoria.nazov', 'Kategória')->setFilterSelect($items);
sevca79
Člen | 55
+
0
-

ahoj,
sem totální začátečník v nette..potřeboval bych nakopnout jak používat o5\grido

stáhl sem si sandbox a o5/grido

composer create-project nette/sandbox
composer require o5/grido

vytvoril zakladni grid z nejakyho tutorialu

$grid=new Grid();

$grid->setModel(array(
  array('name' => 'Lucie', 'gender' => 'female'),
  array('name' => 'Petra', 'gender' => 'female'),
  array('name' => 'Lenka', 'gender' => 'female'),));

$grid->addColumnText('name', 'Jmeno')
   ->setSortable()
   ->setFilterText();
$grid->addColumnText('gender', 'pohlavi')
   ->setSortable()
   ->setFilterText();

$grid->filterRenderType = \Grido\Components\Filters\Filter::RENDER_INNER;

return $grid;

to ze me to vyhazuje E_USER_DEPRECATED sem vyresil dle navodu pridanim radku error_reporting(~E_USER_DEPRECATED);
a grid vypadá tak jak chci, takže mě to vyhazuje konkretni radek pri definici gridu
<table id=„gridTest“ class=„table table-striped table-hover“>

avšak když upravim composer.json na
„o5/grido“: „dev-master“
tak uz me to vyhazuje radek pri definici gridu bez toho class, takze pouze
<table id=„gridTest“>

takže buttony search a reset nejsou ve sloupci Actions

jelikož chci používat nette 2.4, takže tedy musím nyní používat i dev-master ..

jak prosím toto upravit, aby mi to házelo správný stylování..asi se to bude dát někde jednoduše nastavit, ale jelikož sem fakt totální začátečník v nette, tak se radši ptám zde :)

Editoval sevca79 (18. 12. 2016 11:25)

cujan
Člen | 410
+
0
-

Caute mam otazku, zobrazujem udeje z tabulky record, kde mam idUserOut a idUserIn oba cez cudzi kluc odakzuju na tabulku user…probelm je, ze ak odkazem dva stlpce na user->name tak mi vyhodi chybu …

zacatecnik27
Člen | 26
+
0
-

grido mi trochu komplikuje snahu zajistit aby došlo k automatickému aplikovální filtru při změně některého z filtračních inputů. Mám hotový javascript který si vstupy filtru hlídá a jakmile přestanete některé políčko měnit (hodnoty se ustálí řekněme na 500ms) automaticky submitne formulář, potíž je ale v tom že celá tabulka gridu je uvnitř jediného snippetu a aktualizuje se úplně celá včetně políček filtrů, a tady vyvstává problém, pokud uživatel měl focus na některé z buňek filtru tak ho pochopitelně ztratí, což je uživatelsky taková otrava že celou snahu o automatickou aplikaci filtrů vyloženě degraduje. Nebylo by možné mít uvnitř snippetu další snippety a za účelem aplikace filtru aktualizovat opravdu jen tbody a tfoot protože aktualizace thead domnívám se nemá stejně žádný smysl a filtry by tak mohly zůstat nedostčeny s i s případným focusem na inputu filtru ?

jAkErCZ
Člen | 321
+
0
-

Lidi nechápu proč mi funkce public function handleDelete($id)

Hází problém…

Column operator does not accept NULL argument. search►

Source file

Call stack

...\nette\database\src\Database\Table\SqlBuilder.php:296	source  Nette\Database\Table\SqlBuilder->addCondition(arguments)

...\nette\database\src\Database\Table\Selection.php:358	source  Nette\Database\Table\SqlBuilder->addWhere(arguments)

...\nette\database\src\Database\Table\Selection.php:320	source  Nette\Database\Table\Selection->condition(arguments)

...\Modules\CoreModule\presenters\CompanyPresenter.php:188	source  Nette\Database\Table\Selection->where(arguments)

178:
179:                ]);
180:                $grid->setTranslator($translator);
181:
182:                return $grid;
183:        }
184:
185:        public function handleDelete($id)
186:        {
187:        $this->database2->table('Company')
188:                 ->where('ID = ?', $id)
189:                 ->delete();
190:
191:        $this->flashMessage("Položka byla smazána [$id]", 'info');
192:

Nevíte čím to je způsobeno?

kolsi
Člen | 131
+
0
-

Neřešil někdo problém, kdy pošlu do Grido model s joinem, tak se špatně zobrazuje celkový počet položek?

Jednoduchá situace. Dvě tabulky – items a history. Tabulka history má cizí klíč item_id do items. Následně chci v gridu vypsat pouze ty položky, které mají záznam v history.

public function createComponentTestList($name) {
	$grido = new Grido\Grid($this, $name);
	$grido->addColumnText('id', 'ID');
	...
	$grido->setModel($this->itemRepository->findAll()->where(':history.item_id IS NOT NULL'));
	return $grido;
}

Položky to vypíše správné, ale pokud je v history pro jednu položku více záznamů, tak se do celkového počtu položek zahrne vícekrát. A zlobí pak i stránkování – např. stránka 1 zobrazí 5 položek ačkoli „perPage“ je nastaveno na 50, další se zobrazí až na stránce 2.

d@rkWolf
Člen | 163
+
0
-

Neporadil by mi někdo, jak rekonfigurovat přes vlastní JS(abych nemusel editovat to, co je staženo composerem ve vendoru) ten výchozí DateRangePicker(dle plugins/grido.datangepicker.js) v Grido? Nejsem master přes přes JS, není tam žádná použitelná nápověda, ať se snažím jak se snažím, nedaří se mi přijít na to, jak najít ten inicializovaný datepicker a změnit jeho konfiguraci(formát datumu, přeložení tlačítek atd.)

kolsi
Člen | 131
+
0
-

Dotaz ohledně Date a DateRange filtrů… je nějaký konkrétní důvod, proč se při prázdném filtru volá setupEmpty(), která nastaví podmínku na 0=1 ? Pokud mám totiž takový filtr vyplněn a ručně jej smažu (tj. políčko zůstane prázdné), tak se pak v gridu nezobrazí vůbec nic. Očekával bych, že při prázdném filtru se zobrazí naopak všechny položky (tzn. filtr není nastaven).