当我尝试将表格导出为PDF,Excel或CSV时,遇到了jqGrid的问题。
每次运行代码时,我都会得到#34;调用Undefined Method :: jqGrid :: exportToPdf" (或Excel或CSV,取决于我使用的方法。
以下是客户端的剪辑:
.jqGrid('navButtonAdd', '#ors_registrant_pager', {
id: 'exportToPdf',
caption: '',
title: 'Download PDF',
onClickButton: function(){
grid.jqGrid('excelExport',{tag:"pdf","url":"info.php"});
}
这是info.php中的服务器端php脚本:
$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD);
$conn->query("SET NAMES utf8");
$grid = new jqGrid($conn);
$grid->SelectCommand = "SELECT lastName, firstName FROM user_table";
$grid->ExportCommand = "SELECT lastName FROM user_table";
$grid->dataType = "json";
$export = $_POST["oper"];
if($export == "pdf") {
$grid->exportToPdf();
} else {
$grid->queryGrid();
}
网格在页面加载时正确加载,但如上所述,当您单击栏上的PDF按钮时,我会收到该错误。我已尝试将方法的所有参数用于上述相同的结果。我已经跟踪过了,并且exportToPdf方法确实存在于jqGrid类中。
我已搜索过,无法找到问题的任何引用。任何帮助将不胜感激。
更新
转到答案
答案 0 :(得分:0)
好的,因为它发生了很多次,我一发布就找到了答案。有关PHP帮助的Trirand站点中的文档不正确。在帮助中,它声明使用jqGrid类进行PDF导出,但显然你必须使用jqGridRender类。
要进行PDF导出,我必须更改$ grid声明,如下所示:
$grid = null;
$export = $_GET["oper"];
if($export == "pdf"){
$grid = new jqGridRender($conn);
} else {
$grid = new jqGrid($conn);
}
这样做可以导出网格。
我打算删除该帖子,但我要离开,以防其他人遇到同样的问题,希望这会帮助他们。