如何选择网格中的所有记录以导出数据

时间:2014-06-30 15:52:15

标签: jqgrid

我正在尝试选择jqgrid表中的所有数据,以便导出到excel文件中。但是,网格第一页中的数据只会被导出。即,如果网格中共有25条记录,并且第一页中有5条记录,则只有前5条记录被导出。

以下代码负责显示仅有'在网格的第一页..

var gridData = $(" #list")。jqGrid(' getRowData');

以下代码负责显示网格中所有页面中的记录。

var gridData1 = jQuery(" #list")。jqGrid(' getGridParam','数据');

如何使用上面的代码,以便我可以选择网格中存在的所有记录。另外,我正在尝试对网格中存在的记录应用过滤器。在这种情况下,如何获取已过滤的记录数以便将其导出..?

谢谢,

2 个答案:

答案 0 :(得分:0)

你可以在服务器端做。

<script type="text/javascript">
$(document).ready(function () {
    $('#list').jqGrid({
        caption: "test",
             // ...
        }).navGrid(
             // ...
                }).jqGrid('navButtonAdd', '#pager', {
                    caption: "", buttonicon: "ui-icon-print", title: "export",
                    onClickButton: function () {
                        $("#list").jqGrid('excelExport', { url: 'path......' });
                    }
                });
    });
</script>

excelExport方法,将当前页码,排序字段,过滤等发送到指定的URL。现在你有时间处理这些参数并创建一个新的输出。

答案 1 :(得分:-1)

您可能想尝试下面的脚本和功能:

&lt; script type =&#39; text / javascript&#39;&gt;

var tableToExcel = (function () {
    var uri = 'data:application/vnd.ms-excel;base64,'
      , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
      , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
      , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
    return function (table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = { worksheet: name || 'Worksheet', table: table.outerHTML }
        window.location.href = uri + base64(format(template, ctx))
    }
})();


$(document).ready(function () {
    ...declare & setup the jqGrid with 'big row page', e.g. ...
        rowNum: 9999,
        rowList: [50, 100, 200, 9999],
    .........then add below navigation button after setup the grid...
    $("#list").jqGrid('navButtonAdd', pgrid1, {caption:"Download",title:"Download report contents", buttonicon :'ui-icon-circle-arrow-s',
        onClickButton:function(){
            tableToExcel('list', 'export data')
        } 
    });

}

&LT; /脚本&GT;

或者,另一种导出方式可以参考相关问题: How to enable jQgrid to Export data into PDF/Excel