为Kendo网格导出多个隐藏列

时间:2016-05-25 05:59:13

标签: telerik kendo-grid

以下是为Kendo网格导出多个隐藏列的代码,

    String[] input = {"011","010","001"};

    if(input.length==0) return ;
    int n=input[0].length();
    List<BitSet> bitsets = new ArrayList<>();
    for(String in:input){
        // n is the min length of the inputs
        n=Math.min(n,in.length());
        // If you start counting the indices from the left, you need to reverse the inputs
        String reverse = new StringBuilder(in).reverse().toString();
        // Create the actual bitsets
        BitSet b = BitSet.valueOf(new long[] { Long.parseLong(reverse, 2) });
        bitsets.add(b);
    }

    for(int i=0;i<n;i++){
        boolean equals=true;
        for(int j=1;j<bitsets.size();j++)
            equals &= bitsets.get(j-1).get(i)==bitsets.get(j).get(i);
        if(equals)
            System.out.print(bitsets.get(0).get(i)?"1":"0");
        // You can also print the indices if needed.
    }

在上面的代码中给出了var exportFlag = false; $("#grid").data("kendoGrid").bind("excelExport", function (e) { if (!exportFlag) { e.sender.showColumn(0); e.preventDefault(); exportFlag = true; setTimeout(function () { e.sender.saveAsExcel(); }); } else { e.sender.hideColumn(0); exportFlag = false; } }); ,我需要导出n th 列数(导出到多个隐藏列),如下所示:e.sender.showColumn(0);。< / p>

怎么可能?

1 个答案:

答案 0 :(得分:0)

您可以拥有一系列隐藏列。迭代所有列,如果索引在数组中显示它。

function isInArray(value, array) {
                return array.indexOf(value) > -1;
            }

var hidencoll = [1, 2, 3, 4]; // your hidden cols indexes

for(i=0; i< grid.columns.length; i++)
            {
                if (isInArray(i,hidencoll))
                    grid.showColumn(i); // grid.hideColumn(i);               
            }

或者如果你想要前n列:

  for(i=0; i< grid.columns.length; i++)
        {
           if (i <= n)
                 grid.showColumn(i); // grid.hideColumn(i);               
        }