Datagrid + session
- Oggy
- Člen | 306
Mám malý trouble s Datagridem..
InvalidStateException
Cannot send session cache limiter – headers already sent
output started at /app/temp/c-Nette.Template/_450a6c4b6f0a30a3d81131e10438476b.%40layout.phtml.php:32)
presenter:
<?php
class Admin_WebStructurePresenter extends Admin_BasePresenter
{
protected function createComponentWebStructureGrid()
{
$grid = new DataGrid;
//sber dat
$grid->bindDataTable(Sekce::getDataSource());
}
}
?>
layout
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="{$lang}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="{$lang}" />
<meta name="robots" content="noindex,nofollow" />
<title>Administrace | </title>
{block #css}
{control css 'reset.css', 'screen.css' }
{/block}
{block #js}
{control smartJs 'jquery.js', 'jquery.nette.js'}
{/block}
<link rel="shortcut icon" href="{$baseUri}favicon.ico" type="image/x-icon" />
</head>
<body>
{include #content}
</body>
</html>
sablona
{block #content}
{control webStructureGrid}
- Honza Kuchař
- Člen | 1662
Datagrid je ajaxový → použij zavináčkovou magii. Ale i tak by to nemělo vyhazovat, že hlavičky už byly odeslány…
P.S.: Důležitější než kde začal výstup je, kde se vyhodila výjimka.
Editoval honzakuchar (23. 11. 2009 10:26)
- Oggy
- Člen | 306
vyjímka:
File: /var/www/Nette-projekty/aerocentrum/front/libs/Nette/Web/Session.php Line: 115
Line 108: // ignore?
Line 109: }
Line 110:
Line 111: Tools::tryError();
Line 112: session_start();
Line 113: if (Tools::catchError($msg)) {
Line 114: @session_write_close(); // this is needed
Line 115: throw new InvalidStateException($msg);
Line 116: }
Line 117:
Line 118: self::$started = TRUE;
Line 119: if ($this->regenerationNeeded) {
Line 120: session_regenerate_id(TRUE);
Line 121: $this->regenerationNeeded = FALSE;
Line 122: }
Editoval Oggy (23. 11. 2009 11:08)
- lucass
- Člen | 89
@oggy: S tímto jsem se také setkal. DataGrid má v konstruktoru podmínku, kde zjišťuje, zda session běží, a když ne, tak ji nastartuje. Jenže mezitím už něco mohlo být posláno na výstup. Zkus ji nastartovat v tom boostrapu, mělo by se to tím vyřešit (alespoň mně to pomohlo).
Editoval lucass (23. 11. 2009 14:44)