3

在使用 JqxWidges 时,我遇到了导出嵌套网格的问题,该网格使用一个 JSON 作为源文件。通用解决方案不起作用。实际上它只导出父网格列。

   $("#excelExport").click(function () {
        $("#jqxGrid").jqxGrid('exportdata', 'csv', chartName + ' ' + date);     
   });

现有解决方案之一(http://www.jqwidgets.com/community/reply/reply-to-export-data-from-a-nested-grid-13/)建议在调用 initrowdetails 时将嵌套行推入数据数组功能。

是的,它有效!但仅适用于嵌套网格以及选择此网格的情况。

4

1 回答 1

2

因此,从这一步开始,我将转向下一个方法:

  1. 使用初始 JSON 将所有必要的数据收集到数组中(防止您只收集单独的选定数据);

  2. 使用所有现有数据初始化父网格列并将嵌套列标记为隐藏。然后在导出时不要忘记添加 true 参数来导出两个非/隐藏列;

  3. 使用带有自定义数组参数的标准导出;

而已!

数据收集:

var toExport = data.allClientsCountChart;
            var exp = new Array();

            for(var i in toExport){   
                var client = {};
                var countr = toExport[i].countries;
                client[labels.clientType]=toExport[i].clientType;
                client[labels.clientTypeCount]=toExport[i].clientTypeCount;
                exp.push(client);
                for(var j in countr) {   
                    var country = {}
                    var detailes = countr[j].clientDetails;
                    country[labels.countryType]=countr[j].countryType;
                    country[labels.clientsNumber]=countr[j].clientsNumber;
                    exp.push(country);
                    for(var d in detailes) {
                        var det = {}
                        det[labels.scriptName]=detailes[d].scriptName;
                        det[labels.clientsCount]=detailes[d].clientsCount;
                        exp.push(det);

                    }
                }

            }

出口:

$("#excelExport").click(function () {  

    $("#jqxGrid").jqxGrid('exportdata', 'csv', chartName + ' ' + date, true, exp, true);        

   }

并且不要忘记将第五个 pafameter 设置为 true 以导出隐藏列。

毫无疑问,它看起来是硬编码的。但它对我有用。

所以,如果你有一个好的解决方案 - 请发表评论!!!

于 2013-10-24T14:09:25.430 回答