Grido – DataGrid pro Nette
- cujan
- Člen | 410
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().
- Šaman
- Člen | 2659
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
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
@cujan pocitani vahy/sily http://specificity.keegan.st/
.vydaj {
color: #cecece !important
}
- sevca79
- Člen | 55
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)
- zacatecnik27
- Člen | 26
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 | 322
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
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 | 167
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
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).