Re: question about Structures_DataGrid
| From: | Mark Wiesemann | 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