我正在使用 jqgrid 来显示充满(大学)课程评估的数据库的内容。它由大约 20-25 列和 30k 行组成。
webtool (jqgrid) 的目的是能够过滤数据并将选定的列/行导出到 Excel 和图表。到目前为止,我已经设法让 ExcelExport 正常工作(我正在使用 PHPExcel 来实际创建 xlsx 文件,但并不真正相关),但是发送到服务器的数据不包括任何关于哪些列是可见的 - 它确实包括过滤器,所以这一切都很好。我正在使用列选择器和过滤器工具栏来显示选定的数据。
基本上我想将 colModel 与发送到 excelexport 的过滤器一起发送(后来也发送到谷歌图表)。我发现了这种获取 colModel 的方法:
var colModel = $("#list").jqGrid('getGridParam','colModel');
这是 excelexport 函数在 jqgrid 源代码中的样子:
excelExport : function(o) {
o = $.extend({
exptype : "remote",
url : null,
oper: "oper",
tag: "excel",
exportOptions : {}
}, o || {});
return this.each(function(){
if(!this.grid) { return;}
var url;
if(o.exptype === "remote") {
var pdata = $.extend({},this.p.postData);
pdata[o.oper] = o.tag;
var params = jQuery.param(pdata);
if(o.url.indexOf("?") !== -1) { url = o.url+"&"+params; }
else { url = o.url+"?"+params; }
window.location = url;
}
});
我试过编辑这个但没有结果(是不是不可能编辑这个函数?)所以我虽然我会做自己的ajax调用,但我真的不知道从哪里开始。编写自己的调用时如何访问 postData?或者,还有更好的方法?
谢谢!