Re: question about Structures_DataGrid

From: Date: Mon, 14 May 2007 14:23:49 +0000
Subject: Re: question about Structures_DataGrid
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-27291@lists.php.net to get a copy of this message
(second try, should now also go the list) Hi Anton, please send such questions next time to the pear-general list, thanks. Anton Tobolchenko wrote: [...] > <?php > ini_set("include_path", getenv("DOCUMENT_ROOT")."/lib"); > require 'Structures/DataGrid.php'; > require > 'Structures/DataGrid/DataSource/Structures_DataGrid_DataSource_Array.php'; There is no such file in the DataSource/ directory, but a file named Array.php shoud exist there. Anyway, you don't need to include this file yourself. > $datagrid = new Structures_DataGrid(); > $_result = array(); > $_result=array( > "0"=>array("1987664765756","vagon", "SPb", > "11:15", "no"), > "1"=>array("1987664765", "vagon", "SPb", > "11:15", "no"), > "2"=>array("1987664765789", "vagon", "SPb", > "11:15", "no") > ); > $datasource= new Structures_DataGrid_DataSource_Array(); > $datasource->fields=$_result; > > $datasource->labels=array("number","type","town","time","errors"); > $datasource->generate_columns=true; */ This won't work as you expect it to do. The right and better way is to pass the options to the bind() call below. All options for the Array DataSource driver can be found here: http://pear.php.net/manual/en/package.structures.structures-datagrid.structures-datagrid-datasource.array.php Please note that the 'generate_columns' and 'labels' options are deprecated. It's recommended to use $datagrid->generateColumns(): http://pear.php.net/manual/en/package.structures.structures-datagrid.structures-datagrid.generatecolumns.php > $test = $datagrid->bind($_result); > if (PEAR::isError($test)) { > echo $test->getMessage(); > }; > $test = $datagrid->render(); > if (PEAR::isError($test)) { > echo $test->getMessage(); > } > ?> This part is right. > And I saw error "Unable to determine the data source type. You may want to > explicitly specify it." Passing $_result to bind() should work here. Please remove the unneeded lines from above, and try again. It's also a good idea to make sure that there is a file named Array.php in the DataSource/ directory. (By using the PEAR installer, this will be the case.) Regards, Mark -- http://www.markwiesemann.eu

« previous php.pear.general (#27291) next »