Get KoolPHP UI with 30% OFF!

Cant get sorting / grouping / filtering working when using array as datasource

Shaun
Hi
I cant seem to get the datagrid filtering features working when using an array as a datasource.
here''s the code. (a bit messy cause Ive beep playing ) ;)
<?php
    /*
     * Please put this file in the same folder with KoolControls folder
     * or you may modify path of require and scriptFolder to refer correctly
     * to koolgrid.php and its folder.
     */
// ********** Cerebro CDR Fetch (insert into array - $cdrs)
require('../vendor/nategood/httpful/bootstrap.php');
$uri = "http://127.0.0.1:8080/xxxxxxxxxx/cdrs?tmsid=00003&fromDate=2015-08-27&toDate=2015-08-28";
$response = \Httpful\Request::get($uri)
  ->expectsJson()
  ->sendIt();
// Fetch JSON object and convert to an Array
$cdrs = json_decode($response->raw_body, true);
// *********** End of Cerebro CDR Fetch
$KoolControlsFolder = "../koolphp/KoolControls"; //Relative path to "KoolPHPSuite/KoolControls" folder
require $KoolControlsFolder . "/KoolGrid/koolgrid.php";
require $KoolControlsFolder . "/KoolAutoComplete/koolautocomplete.php";
require $KoolControlsFolder . "/KoolCalendar/koolcalendar.php";
require $KoolControlsFolder . "/KoolAjax/koolajax.php";
$koolajax->scriptFolder = $KoolControlsFolder . "/KoolAjax";
    $db_con = mysql_connect("192.168.81.21","xxxxxx","xxxxxxx");
    mysql_select_db("asterisk",$db_con);
    $ds = new MySQLDataSource($db_con);
    $ds->SelectCommand = "SELECT * FROM asterisk.goautodial_recordings_view where date(call_date) = date(now())";
/*
    $ds->UpdateCommand = "";
    $ds->InsertCommand = "";
    $ds->DeleteCommand = "";
*/
    $array_ds = new ArrayDataSource($cdrs);
    $grid = new KoolGrid("grid");
    $grid->scriptFolder = $KoolControlsFolder . "/KoolGrid";
    $grid->styleFolder = "sunset";
    $grid->DataSource = $array_ds;
$grid->AjaxEnabled = true;
$grid->ExportSettings->FileName = "dataexport";
$grid->ExportSettings->IgnorePaging = true;
$grid->AjaxLoadingImage = $KoolControlsFolder . "/KoolAjax/loading/5.gif";
$grid->Status->LoadingText = "Fetching your information ...";
$grid->Status->DoneText = "Phew ! Got it.";
$grid->MasterTable->PageSize = 10;
$grid->MasterTable->RowAlternative = true;
$column = new GridDateTimeColumn();
$column->DataField = "calldate";
$column->HeaderText = "Date / Time";
$column->AllowExporting = true;
$column->AllowFiltering = true;
$column->AllowSorting = true;
$column->ReadOnly = true;
$grid->MasterTable->AddColumn($column);
$column = new GridBoundColumn();
$column->DataField = "dst";
$column->HeaderText = "Destination";
$column->AllowExporting = true;
$column->AllowFiltering = true;
$column->AllowSorting = true;
$grid->MasterTable->AddColumn($column);
$column = new GridBoundColumn();
$column->DataField = "disposition";
$column->HeaderText = "Disposition";
$column->AllowFiltering = true;
$column->AllowSorting = true;
$column->AllowExporting = true;
$grid->MasterTable->AddColumn($column);
$column = new GridBoundColumn();
$column->DataField = "duration";
$column->HeaderText = "Duration (sec)";
$column->AllowExporting = true;
$column->AllowFiltering = true;
$column->AllowSorting = true;
$grid->MasterTable->AddColumn($column);
$column = new GridBoundColumn();
$column->DataField = "billsec";
$column->HeaderText = "Bill Duration";
$column->AllowFiltering = true;
$column->AllowSorting = true;
$grid->MasterTable->AddColumn($column);
$column = new GridBoundColumn();
$column->DataField = "committedCost";
$column->HeaderText = "Cost";
$column->AllowFiltering = true;
$column->AllowSorting = true;
$grid->MasterTable->AddColumn($column);
$column = new GridCustomColumn();
$column->DataField = "location";
$column->HeaderText = "Recording";
$column->AllowHtmlRender = true;
$column->ItemTemplate = "<audio controls  ><source src='{location}' type='audio/mpeg'>Your browser does not support the audio element.</audio>";
$grid->MasterTable->AddColumn($column);
$grid->MasterTable->Pager = new GridPrevNextAndNumericPager();
$grid->Process();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Verns Call Verification Page</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
<form id="form1" method="post">
    <?php echo $koolajax->Render();?>
    <?php echo $grid->Render(); ?>
    </form>
</body>
</html>

Would love a point in the right direction ;)
Posted Aug 28, 2015 Kool
David
Hi Shaun,
The standard ArrayDataSource does not support sorting or filtering. To do that please use the AdvancedArrayDataSource class included in folder KoolGrid/ext/datasources/AdvancedArrayDataSource.php
Rgds,
Posted Aug 28, 2015 Kool -
Shaun
AAH, Awesome ! Thanks. Ill have a go at it now. :)
Posted Aug 28, 2015 Kool
Shaun
Thanks David
Working now :)
Posted Aug 28, 2015 Kool -