3

JqxWidges を使用しているときに、1 つの JSON をソース ファイルとして使用するネストされたグリッドをエクスポートする際に問題が発生しました。一般的な解決策は機能しません。実際には、親グリッド列のみをエクスポートします。

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

既存のソリューションの 1 つ ( 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);        

   }

非表示の列をエクスポートするには、5 番目の pafameter を true に設定することを忘れないでください。

ハードコーディングされているように見えます。しかし、それは私にとってはうまくいきます。

それで、あなたが良い解決策を持っているなら - コメントを残してください!!!

于 2013-10-24T14:09:25.430 に答える