我有一个使用 jqGrid PHP API 和选择列附加组件(显示/隐藏列)创建的网格。我需要添加保存网格状态的功能(在进行任何过滤、更改列顺序或隐藏任何列之后)。
我看过几篇使用 cookie 或 localStore 来保存网格状态的帖子。但是,我希望能够将其保存在数据库中,以便以后在用户下次登录系统时恢复它。
这是我用于网格的 PHP 代码:
require_once JQGRID_PATH."php/jqGrid.php";
require_once JQGRID_PATH."php/jqGridPdo.php";
// Connection to the server
$conn = new PDO(DB_DSN,DB_USER,DB_PASS);
// Create the jqGrid instance
$grid = new jqGridRender($conn);
// Write the SQL Query
$grid->SelectCommand = 'SELECT timestamp, user_name, action_type FROM audit_log';
// set the ouput format to json
$grid->dataType = 'json';
// Let the grid create the model
$grid->setColModel();
// Set the url from where we obtain the data
$grid->setUrl('audit_log');
// Set grid caption using the option caption
$grid->setGridOptions(array(
"caption"=>"Audit Log Report",
"height"=>470,
"width" => 1100,
"rowNum"=>25,
"shrinkToFit"=>false,
"sortname"=>"timestamp",
"sortorder"=>"desc",
"rowList"=>array(25,50,100)
));
$grid->navigator = true;
$grid->setNavOptions(
'navigator', array(
"excel"=>true,
"add"=>false,
"edit"=>false,
"view"=>false,
"del"=>false,
"pdf"=>true
)
);
$grid->renderGrid('#grid','#pager', true, null, null, true, true, true);
此外,我看到的使用 localStore 保存网格状态的帖子都是使用 jQuery 而不是 jqGrid PHP Suite 构建的。关于如何使用 jqGrid PHP API 完成此任务的任何想法?
任何帮助将不胜感激。
谢谢!