Last active
June 14, 2020 19:50
-
-
Save gridphp/a699e0e7c4a0496befd60f9d3a70732c to your computer and use it in GitHub Desktop.
Custom formatter based on row data - Line 66-84, https://www.gridphp.com
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* PHP Grid Component | |
* | |
* @author Abu Ghufran <gridphp@gmail.com> - http://www.phpgrid.org | |
* @version 2.0.0 | |
* @license: see license.txt included in package | |
*/ | |
include_once("../../config.php"); | |
include(PHPGRID_LIBPATH."inc/jqgrid_dist.php"); | |
// Database config file to be passed in phpgrid constructor | |
$db_conf = array( | |
"type" => PHPGRID_DBTYPE, | |
"server" => PHPGRID_DBHOST, | |
"user" => PHPGRID_DBUSER, | |
"password" => PHPGRID_DBPASS, | |
"database" => PHPGRID_DBNAME | |
); | |
$g = new jqgrid($db_conf); | |
$grid["caption"] = "Sample Grid"; | |
$g->set_options($grid); | |
// this db table will be used for add,edit,delete | |
$g->table = "invheader"; | |
$col = array(); | |
$col["title"] = "Id"; // caption of column | |
$col["name"] = "id"; | |
$col["width"] = "10"; | |
$cols[] = $col; | |
$col = array(); | |
$col["title"] = "Client"; | |
$col["name"] = "client_id"; | |
$col["dbname"] = "invheader.client_id"; // this is required as we need to search in name field, not id | |
$col["width"] = "100"; | |
$col["align"] = "left"; | |
$col["search"] = true; | |
$col["editable"] = true; | |
$cols[] = $col; | |
$col = array(); | |
$col["title"] = "Date"; | |
$col["name"] = "invdate"; | |
$col["width"] = "50"; | |
$col["editable"] = true; // this column is editable | |
$col["editoptions"] = array("size"=>20); // with default display of textbox with size 20 | |
$col["editrules"] = array("required"=>true); // and is required | |
$col["formatter"] = "date"; // format as date | |
$col["search"] = false; | |
$cols[] = $col; | |
$col = array(); | |
$col["title"] = "Amount"; | |
$col["name"] = "amount"; | |
$col["width"] = "50"; | |
$col["editable"] = true; // this column is editable | |
$col["editoptions"] = array("size"=>20); // with default display of textbox with size 20 | |
$col["editrules"] = array("required"=>true); // and is required | |
$col["formatter"] = "function(cellvalue, options, rowObject){ | |
// if clientid is 1, format as currency else percent | |
if (rowObject['client_id'] == '1') | |
{ | |
return Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(cellvalue); | |
} | |
else | |
{ | |
return Intl.NumberFormat('en-US',{ style: 'percent', maximumSignificantDigits: 3 }).format(cellvalue/100); | |
} | |
}"; | |
$col["unformat"] = "function(cellvalue, options, rowObject){ | |
return cellvalue.replace(/[\%\$\,]/g,''); | |
}"; | |
$cols[] = $col; | |
$col = array(); | |
$col["title"] = "Note"; | |
$col["name"] = "note"; | |
$col["width"] = "50"; | |
$col["editable"] = true; // this column is editable | |
$col["editoptions"] = array("size"=>20); // with default display of textbox with size 20 | |
$col["hidedlg"] = true; // hide in column selection | |
$cols[] = $col; | |
// pass the cooked columns to grid | |
$g->set_columns($cols); | |
$out = $g->render("list1"); | |
?> | |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
<html> | |
<head> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<link rel="stylesheet" type="text/css" media="screen" href="../../lib/js/themes/redmond/jquery-ui.custom.css" /> | |
<link rel="stylesheet" type="text/css" media="screen" href="../../lib/js/jqgrid/css/ui.jqgrid.css" /> | |
<script src="../../lib/js/jquery.min.js" type="text/javascript"></script> | |
<script src="../../lib/js/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript"></script> | |
<script src="../../lib/js/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script> | |
<script src="../../lib/js/themes/jquery-ui.custom.min.js" type="text/javascript"></script> | |
</head> | |
<body> | |
<div> | |
<?php echo $out?> | |
</div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment