Grido – DataGrid pro Nette

o5
Člen | 416
+
0
-

Hafran napsal(a):

Našel jsem getActualFilter() ale vypadá to, že ten to nezvládá v Ajaxu

Tím to opravdu není :) Můj tip je, že to v šabloně voláš někdo mimo snippet „grid“ a tedy se ti to volání v ajax-módu neprovede.

flexroad
Člen | 117
+
0
-

Ahoj, nevite nekdo jak pridat nejaky styl tlacitku „search“ v pravem hornim rohu tabulky?

Diky,

@flexroad

o5
Člen | 416
+
+1
-

flexroad napsal(a):

Ahoj, nevite nekdo jak pridat nejaky styl tlacitku „search“ v pravem hornim rohu tabulky?

Diky,

@flexroad

Měl by mít třídu .grido .buttons .search

kolsi
Člen | 131
+
0
-

Jak byste nejlépe vyřešili situaci, kdy máte ve sloupci nějaký HTML kód, který chcete zobrazit? Napadá mě použít setCustomRender, kde ten text přeformátuju, ale problém je, že filtrování a řazení nadále bude počítat i s těmi HTML tagy.

o5
Člen | 416
+
0
-

kolsi napsal(a):

Jak byste nejlépe vyřešili situaci, kdy máte ve sloupci nějaký HTML kód, který chcete zobrazit? Napadá mě použít setCustomRender, kde ten text přeformátuju, ale problém je, že filtrování a řazení nadále bude počítat i s těmi HTML tagy.

Nevim co presne resis, ale Grido nedela nic jinyho, nez ze sklada sql dotaz ktery se pak odesle do db. Tedy tohle co tady pises nesouvisi s Grido. Opakuji ze z toho co jsi napsal se neda zjistit co resis, ale mozna by stacilo pridat sloupec ktery bude obsahovat surova data (bez html) a podle toho budes filtrovat/radit.

kolsi
Člen | 131
+
0
-

No jde mi přesně o toto:

  • uživatel může ke každé položce napsat krátký popis
  • v tomto popisu může použít i HTML tagy (používám WYSIWYG editor, použít se můžou jen určité tagy)
  • náhled tohoto popisu se zobrazuje i v seznamu položek (Grido)

Takže napíšu třeba popis <b>Tučný text</b>. V Gridu pak ale vidím tyto tagy (a ne tučný text), což chápu, takže přes setCustomRender si to naformátuju podle sebe (buď podle tagů „natučním“, nebo tagy odfiltruju). Jenže když pak do filtru napíšu „b“, tak bude vyhovovat i tahle položka, protože tam je <b>.

Chápu, proč to dělá. Spíš mě zajímá, jestli to už někdo neřešil a nemá nějaké elegantní řešení.

o5
Člen | 416
+
0
-

@kolsi: Hlavne ty bys nemel ukladat HTML, ale spis nejaky Texy

kolsi
Člen | 131
+
0
-

Tak je v celku fuk jestli použiju HTML, Texy nebo nějaký svoje tagování. To, co jsem se snažil vyřešit bylo, aby filtrování/našeptávání/řazení bralo v úvahu nějak naformátovaný text (např. ořezaný o ty tagy).

btw chybka v Grido.js – pokud mám na jedné stránce vícekrát Grido, kde oba obsahují sloupec se stejným názvem a v tom druhém je zapnutá editace (v prvním není), tak to nefunguje, protože při pokusu o editaci se to pokusí vzít URL handler z toho prvního. Bude to chybka při používání jQuery selectorů (vezme se první nalezený element, nikoli ten, který patří požadovanému objektu).

o5
Člen | 416
+
0
-

@kolsi posli pull, samo se to neopravi.

LuDe
Člen | 2
+
0
-

Asi jsem uplně mimo, ale jde nějak jednoduše zapnout sortování v přes ajax aby se mi nerefreshovala stránka? nějak to nemůžu nikde dohledat..

abc
Člen | 92
+
0
-

@LuDe:
Pokud se nepletu, tak by melo stacit prilinkovat:

<script src="https://cdn.rawgit.com/o5/grido/1a4f1e5/client-side/js/grido.js"></script>
<script src="https://cdn.rawgit.com/o5/grido/1a4f1e5/client-side/js/plugins/grido.datepicker.js"></script>
<script src="https://cdn.rawgit.com/o5/grido/1a4f1e5/client-side/js/plugins/grido.typeahead.js"></script>
<script src="https://cdn.rawgit.com/o5/grido/1a4f1e5/client-side/js/plugins/grido.history.js"></script>
<script src="https://cdn.rawgit.com/o5/grido/1a4f1e5/client-side/js/plugins/grido.nette.ajax.js"></script>
LuDe
Člen | 2
+
0
-

to mám a stejně se mi stránka při kliknutí na řazení celá refreshuje.

flexroad
Člen | 117
+
0
-

Ahoj. Funguje inline editace? Koukam na demo a moc to tak nevypada?

Diky za info.

o5 napsal(a):

Release 2.0

Intro:

Před skoro měsícem mi přišel email od @Jakub Kopřiva, že si má v rámci předmětu ve škole vybrat projekt, do kterého bude v průběhu semestru přispívat. Jsem rád, že si vybral právě Grido a pustil se do implementace inline editace, po které bylo tolik voláno. Ještě před rokem a půl jsem se na možnou inline editaci v Gridu díval skepticky, ale zřejmě díky Admineru (kde ji často využívám) jsem změnil názor a tak jsem tomu mohl dát volný průběh. Současná implementace je výsledkem ‚párového programování‘, protože jsem si neustále vymýšlel něco nového anebo to Jakubovi rozbíjel pod rukama :))

Inline editace:

Hlavní novinka verze, přejděme na use case. Vypadá váš grid nějak takto? Tedy používá výchozí sloupce, Nette Database a rádi byste přidali inline editaci? Pohodlně se usaďte, protože tenhle běžný požadavek uděláte v Grido 2.0 takhle jednoduše: $grid->setEditableColumns()! Pokud totiž jako datasource používate NDB je to skutečně takto jednoduché, protože metoda update() je implementovaná přímo v Grido\DataSources\NetteDatabase. V rámci jednoduchosti jsem se rovněž rozhodl, že ve většině případů při inline editaci dostačuje input type text. Občas je ale potřeba použít něco jednoznačnějšího, třeba selectbox, pro tuto situaci je tu $column->setEditableControl(). Inline editace tedy pokračuje v trendu, který charakterizuje celé Grido – minimum kódu, pro naprosto běžné požadavky při tvorbě výpisu položek.

Pro ostatní datasource se nám takto jednoduše metoda update() nepodařila naimplementovat, takže vám nezbyde nic jiného než nastavit vlastní callback a to jako první parametr metody $grid->setEditableColumns(). Toť asi vše, na další dotazy by měla odpovědět dokumentace nebo demo. Raději ještě upozorňuji, že je potřeba udělat update i klientské části (grido.js, grido.css).

Další minor věci:
  • Columns: Label nyní může být i objekt \Nette\Utils\Html (Issue 116)
  • Columns: Odebral jsem „cool url sorting representation“ (↑/↓) protože to v Safari nefungovalo (Issue 123)
  • Client-side script: Snad už konečné vyřešení problému s nette.ajax.js vs grido confirm (Issue 114)
  • DataSources\Doctrine: vylepšení Doctrine Paginator (Issue 125)
  • Podpora Nette 2.2
Outro:

Od doby co jsem zveřejnil Grido, se objevilo pár lidí, co chtěli přispět na vývoj. Stěžovali si na absenci donate buttons apod. Nyní by již neměl být problém, donate buttons jsem přidal na stránky projektu :)) Vyjádřít dík se ale dnes nechá i pomocí Github star, takže rovněž můžete učinit i třeba takto :P

Enjoy!

Oli
Člen | 1215
+
+2
-

@flexroad zkoušel jsi ctrl + double click? ;-)

rumcais1
Člen | 80
+
0
-

Ahoj nemáte někdo problém v nette 2.3.x hlásí mi to „Call to undefined function Grido\callback()“. Díky M.

Pavel Kravčík
Člen | 1183
+
0
-

2.3.1, 2.3.2 a dnes i 2.3.3 fungují bez problémů. Jediná změna, že když chci použít setRemmemberState(), tak to musím připojit k presenteru.

protected function createComponentNeuhrazenoGrido($name)
{
	$grid = new \Grido\Grid($this, $name);
}
flexroad
Člen | 117
+
0
-

:) to je tak, kdyz nekdo necte dokumentaci ;)

dikyyy.

Oli napsal(a):

@flexroad zkoušel jsi ctrl + double click? ;-)

oskarmaniak
Člen | 29
+
0
-

Ahoj, neřešil někdo problém kdy kombinace nejnovějšího nette 2.3.x a Grido poslední nefunguje našeptávání filtru

setSuggestion()?

V nette 2.0.12 mi to fungovalo, jen po výměně nette nefunguje, ani při následovným updatu Grido na nejnovější verzi stále nefunguje.

Zdroj dat je nette datasource

Dík za případné nasměrování.

Update:

  • Html kódu chybí skryté inputy
  • ID inputu se v novém nette skládá jinak
frmform-filters-fullname
frm-viewUsers-form-filters-fullname
  • Zjistil jsem, že v novém nette nedojde k zavolání ajaxu url k vrácení dat pro našeptávání.

Editoval oskarmaniak (27. 6. 2015 23:08)

rumcais1
Člen | 80
+
0
-

Ahoj, neřešil jste někdo spojení tří sloupců do jednoho. A následné třídění a filtrování.

Pavel Kravčík
Člen | 1183
+
0
-

@rumcais1:

->setCustomRender(function($row){
	return $row->column1 . ' ' . $row->column2 . ' ' . $row->column3;
});

http://o5.github.io/…tion.cs.html#…
Ale hůře se to používá pro suggestion.

Šaman
Člen | 2640
+
0
-

rumcais1 napsal(a):

Ahoj, neřešil jste někdo spojení tří sloupců do jednoho. A následné třídění a filtrování.

Jj, řešil. A došel jsem k pohledu (SQL view). Pak se s tím pracuje jako s jediným sloupcem. Já to měl při spojení titul1 + jméno + příjmení + titul2.

CZechBoY
Člen | 3608
+
+1
-

Zdravím,
nevíte jak grido nainstalovat na Nette/web-project?

Grido bohužel vyžaduje nette/nette a Composer neumí najít vhodnou verzi knihoven. :(

Díky

Džůny
Člen | 19
+
0
-

Připojím se, taky bych rád nainstaloval Grido (Composerem) na nette/web-project. Věděl by někdo jak na to, prosím?

Šaman
Člen | 2640
+
0
-

Taky se přimlouvám, zda by Grido mohlo mít vyjmenované jednotlivé závislosti.

TomasG
Člen | 23
+
0
-

Ahoj,
Mám zprovozněné Grido, ale mám problémy s JS soubory.

Mám přilinkované tyto scripty v tomto pořadí:

	<script src="{$basePath}/js/jquery.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script>
<script src="{$basePath}/js/grido/grido.js"></script>
<script src="{$basePath}/js/grido/grido.nette.ajax.js"></script>

Neháže to žádnou chybu, ale nefunguje mi řazení, filtrování, setConfirm atd.
Ajaxové požadavky se vůbec neposílají.

Tuší/ví někdo čím to může být? :o)
Díky

Editoval TomasG (16. 7. 2015 11:21)

Šaman
Člen | 2640
+
0
-

TomasG napsal(a):

Ahoj,
Mám zprovozněné Grido, ale mám problémy s JS soubory.

Mám přilinkované tyto scripty v tomto pořadí:

	<script src="{$basePath}/js/jquery.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script>
<script src="{$basePath}/js/grido/grido.js"></script>
<script src="{$basePath}/js/grido/grido.nette.ajax.js"></script>

Neháže to žádnou chybu, ale nefunguje mi řazení, filtrování, setConfirm atd.
Ajaxové požadavky se vůbec neposílají.

Tuší/ví někdo čím to může být? :o)
Díky

A AJAX ti mimo Grido funguje, resp. máš ho inicializovaný v nějakém main.js?
Mám na mysli

$(function () {
	$.nette.init();
});

Editoval Šaman (16. 7. 2015 11:42)

TomasG
Člen | 23
+
0
-

Ano, mimo Grido funguje…

Editoval TomasG (16. 7. 2015 19:32)

Pavel Janda
Člen | 977
+
0
-

Zdravím,

bylo by možné uvádět v composer.json už pouze jednotlivé rozdělené repos? Myslím ze strany o5/grido.

Editoval Beton (17. 7. 2015 11:30)

pekinen
Člen | 29
+
0
-

Ahoj,

nefunguje mi setSuggestion() ani setConfirm.
Pouzivam Nette 2.3.1 a Grido 2.0.8.

Nalinkovane mam tyto soubory

<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//nette.github.io/resources/js/netteForms.min.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script>
<script src="{$basePath}/js/jquery-ui.min.js"></script>
<script src="{$basePath}/js/grido.js"></script>
<script src="{$basePath}/js/plugins/grido.datepicker.js"></script>
<script src="{$basePath}/js/plugins/grido.daterangepicker.js"></script>

<script src="{$basePath}/js/plugins/grido.typeahead.js"></script>
<script src="{$basePath}/js/plugins/grido.history.js"></script>
<script src="{$basePath}/js/plugins/grido.nette.ajax.js"></script>

Nevite prosim cim by to mohlo byt. Predem diky za odpoved.

Unlink
Člen | 298
+
0
-

@pekinen a $.nette.init(); máš niekde hej?

pekinen
Člen | 29
+
0
-

Unlink napsal(a):

@pekinen a $.nette.init(); máš niekde hej?

Ted uz hej :)
Diky moc.

Jan Mikeš
Člen | 771
+
0
-

@o5 neplanujes pridat podporu pro dalsi formaty exportu? (xls, xml..) me osobne by se libilo, kdyby byla podpora pro pridani komponenty po vzoru Grido\Components\Export (muze byt take rozhrani IResponse).
A na gridu nejak volat $grid->addExportMethod($this["myExportComponent"]) nebo neco takoveho…

CZechBoY
Člen | 3608
+
0
-

Jak přidat sortable customRendered sloupec?
Potřebuji přidat sloupec s počtem řádků z related tabulky, která máPK složený ze 2 sloupců.
Dík :)

Pavel Kravčík
Člen | 1183
+
0
-

@CZechBoY Nejjednodušší bývá vyřešit to o úroveň výše. Třeba VIEW nebo si to předělat do pole a to posílat jako data modelu.

o5
Člen | 416
+
+2
-

@CZechBoY @kzk_cz : Hodila by se možnost ovlivnit ORDER klazuli co? Něco po stylu setWhere().

@Lexi: Kdysi jsem psal, že mi připadá blbost jiný formát exportu, protože featury XLS se stejnak nevyužijí. Nedávno mě ale napadla myšlenka, zkusit implementovat export do Google Spreadsheets pokud to jejich API umožňuje.

Export ale obsahuje bug když se exportuje z tabule s větším množstvím záznamů. Udělal jsem si hotfix, kde Grido používáme, ale do officiálního repa se to zatím nedostalo, protože na to prostě nemám motivaci a sílu. Jsou tam na to i některé pokusy v podobě pull-requestů, ale i merge některých pull-requestů vyžaduje úsilí. Jsem už přes rok znovu na full-time a dost těžko se mi hledá čas na vlastní ne-opensource projekt, natož abych se věnoval „z lásky“ gridu. Navíc aktuální stav kolem Nette (Nette Pro) mě spíš demotivuje.

Editoval o5 (31. 7. 2015 11:35)

CZechBoY
Člen | 3608
+
0
-

@kzk_cz zatím to řeším tak, že v Selection vyberu ten sloupec groupovaci funkci a naaliasuju na jméno sloupce. Nevýhoda je, že pak musím všechny sloupce vyjmenovat :/
Jak to myslíš s tím view?

Pavel Kravčík
Člen | 1183
+
0
-

@o5: To myslím určitě, už se to tady párkrát řešilo myslím. Nakonec jsem vždy skončil u toho vyřešit to dříve, než to pošlu do Grido.

@CZechBoY: Ano, přesně takhle. Prostě to logiku přesunout do DB, je jedno jak už. Ještě se mi osvědčilo u některých případů něco podobného:

Mám smlouvu třeba. Ta má v sobě „vozidlo_id“, „klient_id“ a podobné věci. Takže při každém vykreslování řádku by byl dotaz do těch ostatních tabulek. Strukturu jsem upravil na dva sloupce „vozidlo_id“ a „vozidlo_string“. A tam už jde výsledek toho sloupce při založení/úpravě. Protože název toho vozidla se může skládat z modelu, značky, druhu a to všechno má ještě svojí tabulku. Ale zase je potřeba vyřešit tu režii, pokud se změní název vozidla. To se vyplatí u věcí, které se často nemění. Třeba Ti to pomůže. :)

CZechBoY
Člen | 3608
+
0
-

@kzk_cz: s db moc nehjbat nepude, maximálně tak si přidat pohled, ale to je asi zbytečný…
Spíš jsem se na to kouknul z ranního pohledu (víc vyspanýho jak po půlnoci :D) a můžu dát rovnou na Selection ty groupy a selection vynechat. Potom tu, ale pořád stojí problém kde nastavit selectování dalšího sloupce (customRender ok, ale potom nejde sortable).

@o5: nevím, k čemu by nám bylo ovlivnění ORDER klauzule (setWhere jsem nenašel).
Zatím jsem vymyslel:

  1. setOrder (nebo string do setSortable)
  2. když bude nastaven setCustomRender a sortable tak vyžadovat i setCustomSort

Editoval CZechBoY (31. 7. 2015 12:40)

CZechBoY
Člen | 3608
+
0
-

Jde prosím nějak udělat operation, která bude pouze javascriptová?
Případně jak přidat checkboxy a nějaký tlačítko/selectbox do grida?

Pavel Kravčík
Člen | 1183
+
0
-

@CZechBoY: Já to tam obešel tak, že ten sloupec jsem si prostě složil a nemusím mu ani dávat customRender(). Narážel jsem na stejné problémy jako a na nějaké pěkné řešení jsem nepřišel. Proto je lepší, když si to připravíš mimo Grido. Prostě jeden sloupec a všechny data v něm.

flexroad
Člen | 117
+
0
-

Ahoj,

Rad bych pouzil export v gridu.

Existuje moznost u exportu nastavit jine sloupce, nez jsou aktualne zobrazene? Pripadne nektere zobrazene sloupce do exportu nezahrnovat?

Jde pripadne upravit format exportovaneho souboru?

Diky za info,

@flexroad

chap
Člen | 81
+
+3
-

flexroad napsal(a):
Jde pripadne upravit format exportovaneho souboru?

Já si nedávno připravil export do XLS (vycházel jsem z třídy Grida – Export). Pro funkci je třeba v aplikaci přidat knihovnu phpoffice/phpexcel … tak pro inspiraci – třeba někdo využije:
použití:

new Chap\Grido\Export($grid,"nejaky nazev");

Třída:

<?php

namespace Chap\Grido;

use Grido\Components\Columns\Column,
		Nette\Application\IResponse,
		Grido\Components\Component,
		Grido\Grid;
/**
 * Exporting data to XLS.
 */
class Export extends Component implements IResponse
{
    const ID = 'export';

    /**
     * @param \Grido\Grid $grid
     * @param string $label
     */
    public function __construct( Grid $grid, $label = NULL)
    {
        $this->grid = $grid;
        $this->label = $label === NULL
            ? ucfirst($this->grid->getName())
            : $label;

        $grid->addComponent($this, self::ID);
    }

    /**
     * @return string
     */
    protected function generateSource()
    {

		$excel = new \PHPExcel();

		$excel->setActiveSheetIndex(0);
		$sheet = $excel->getActiveSheet();


        $limit = 100;
		$radky = 1;
        $datasource = $this->grid->getData(FALSE, FALSE, FALSE);
        $iterations = ceil($datasource->getCount() / $limit);

        $columns = $this->grid[Column::ID]->getComponents();


        foreach ($columns as $column) {
            $header[] = $column->getLabel();
        }
		$sheet->fromArray($header,null,"A".$radky++);



        for ($i = 0; $i < $iterations; ++$i) {
            $datasource->limit($i * $limit, $limit);
            $data = $datasource->getData();
            foreach ($data as $item) {
                $row = array();

                foreach ($columns as $column) {
                    $row[] = $column->renderExport($item);
                }
                $sheet->fromArray($row,null,"A".$radky++);
            }

            unset($data);
        }
		foreach (range('A', $sheet->getHighestDataColumn()) as $col) {
			$sheet->getColumnDimension($col)->setAutoSize(true);
 		}
		$stylHead = $sheet->getStyle("A1:".$sheet->getHighestDataColumn()."1");
		$stylHead->getFont()->setBold(true);
		$stylHead->getAlignment()
				->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
		$stylHead->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)
				->getStartColor()->setRGB('66FF66');

        return $excel;
    }

    /**
     * @internal
     */
    public function handleExport()
    {
        $this->grid->onRegistered && $this->grid->onRegistered($this->grid);
        $this->grid->presenter->sendResponse($this);
    }

    /*************************** interface \Nette\Application\IResponse ***************************/

    /**
     * Sends response to output.
     * @param \Nette\Http\IRequest $httpRequest
     * @param \Nette\Http\IResponse $httpResponse
     * @return void
     */
    public function send(\Nette\Http\IRequest $httpRequest, \Nette\Http\IResponse $httpResponse)
    {
		$objWriter = new \PHPExcel_Writer_Excel2007($this->generateSource());
        header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
		header("Content-Disposition: attachment; filename=\"$this->label.xlsx\"");
		header("Cache-Control: max-age=0");
		$objWriter->save("php://output");
		die;
    }
}

Editoval chap (5. 8. 2015 11:23)

yrow
Člen | 12
+
0
-

Zdravím, můžu se zeptat jak je to s podporou pro nové nette > 2.3.*
popřípadě jak to tam právně implementovat bez composeru

Pavel Kravčík
Člen | 1183
+
0
-

@yrow: V Nette 2.3.2 a 2.3.4 běží v pohodě. Bez Composeru – to nedělej – je to čirý masochismus. :) Ale pokud máš pár hodin čas a chceš se nervovat, tak si stáhni .zip z GitHubu (https://github.com/o5/grido).

Oli
Člen | 1215
+
0
-

o5 napsal(a):

@flexroad http://o5.github.io/….Column.html#…

@o5 Tohle ale umožní jen nezobrazit ten sloupec v exportu, případně ho nějak pozměnit, nebo ne? Může tahle funkce zobrazit i další sloupce, který nejsou zobrazený v gridu? Pokud ano, můžu poprosit o ukázku?

Případně mám napůl do Grido implementovaný export pro Excel. Implementoval jsem si tam zpracování události pro export právě na zobrazení dalších sloupců, který nejsou vidět v gridu na webu.

Vypadá to potom zhruba takhle:

$export = $this->grid->setExport();
$export->onFetchDataExport[] = function ($columns, \Grido\Grid $grid) {
	$columns['street'] = $grid->addColumnText('street', 'Ulice');
	$columns['streetNumber'] = $grid->addColumnText('streetNumber', 'Číslo popisné');
	$columns['city'] = $grid->addColumnText('city_id', 'Město')
		->setCustomRenderExport(function ($value) {
			return $value->city->name;
		});
};

Měl bys zájem o PR něčeho takovýho do Grido?

oskarmaniak
Člen | 29
+
0
-

BUMP

Ahoj, jen se posouvám s dotazem, zda někdo neměl po přechodu na nové nette problém s Gridem, kdy přestalo fungovat

setSuggestion()?

jak jsem již zmínil

https://forum.nette.org/cs/13109-grido-datagrid-pro-nette?p=18#p158825

Zatím zde proběhla nějaká zmínka někomu s podobným dotazem komu pomohlo

$.nette.init();

bez toho mi to ale fungovalo před updatem. Pro jistotu jsem vyzkoušel a stejně mi to nechodí ani s tím. Někdo kdo řeší podobnou situaci, nebo by dokázal poradit?

Díky moc

Pavel Kravčík
Člen | 1183
+
0
-

@oskarmaniak: Pravděpodobně to bude typeahead.js – možná ho máš v JS nalinkované dvakrát. Nebo pokud se s typeahead pokusíš upgrade. Matně si vzpomínám, že od 1.10 (ty verze si nepamatuju) to s Grido již nefunguje. Zkusil bych se podívat tím směrem.

A můžeš použít (http://getfirebug.com/) na debugování ajaxových požadavků.

Pavel Kravčík
Člen | 1183
+
0
-

@o5: Tohle je asi problém, mám to založit jako issue?

Při custom operacích ($grid->setOperation) se generuje na každý řádek tento kód (http://pastebin.com/BKj4ditr) – což si normálně člověk nevšimne v Ajaxu a je to jedno, ale při posílání většího balíku (~400) to spadne na „too long url error“, protože se tam ta část operation[id]=on zkopíruje 400x… Možná by to šlo odejít přes session.

chap
Člen | 81
+
0
-

Ahoj,
nějak tu bojuji s ajaxem pro filtry v Gridu. Používám ho v komponentě kollarovic/admin … vše šlape zdá se ok, jen při změně select filtru se zavlaji dva ajaxové dotazy (první skončí hned – cancel) a druhý vrátí komplet html. V tom prvním se to tváří, že odesílá správně a druhý vypadá, že odesílá s parametrem tlačítka search. Nejde mi ani vybrat možnost počet záznamů na stránku. Pokud ale dám tlačítko hledat, tak se provede dotaz ajaxem a zdá se být ok. Přes webloader mám vloženy všechny JS z client-side. Už s tím laboruju dlouho, ale už fakt nevím. Nemá někdo prosím podobnou zkušenost? Díky Chap

odpovím si editem příspěvku – problém byl ve staré verzi nette.ajax.js :)

Editoval chap (12. 8. 2015 23:49)