Kendo UI ..在发送到Grid之前转换数据源数据。

时间:2016-08-07 16:29:50

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我有一些看起来像这样的数据:

   {
      "Data":[
         [
            {"Key":"Commonality","Value":0},
            {"Key":"Item","Value":"ExampleItem"
         ]
        "Total":2,
        "AggregateResults":null,
        "Errors":null
       ]
   }

无法更改JSON的格式。

我需要以某种方式将数据转换为:

   {
      "Data":[
         [
            { Commonality:0}, Item:"ExampleItem"}
         ]
        "Total":2,
        "AggregateResults":null,
        "Errors":null
       ]
   }

Kendo UI是否有回调可以用来处理数据并在收到数据后将其传回数据源?

1 个答案:

答案 0 :(得分:1)

在发布我的问题之后,我意识到我99%在那里!

我刚从我的翻译功能中错过了Total,AgggregateResults等

       function parseFunction(response) {
            var result = [];

            var data = response.Data;

            for (var irow = 0; irow < data.length; irow++) {
                var newRecord = {};

                for (var icol = 0; icol < data[irow].length; icol++) {
                    var record = data[irow][icol];

                    newRecord[record.Key] = record.Value;
                }
                result.push(newRecord);
            }
            response.Data = result;
            return response;
        }

这是在数据源中使用的:)

        function CreateDataSource() {
            var source = new kendo.data.DataSource({
                transport: {
                    read: {
                        url: 'GetFixturesReport',
                    }
                },
                pageSize: itemsPerPage,
                type: 'aspnetmvc-ajax',
                serverPaging: true,
                serverFiltering: true,
                serverSorting: true,

                schema: {
                    data: 'Data',
                    total: 'Total',
                    errors: 'Errors',
                    //model: { id: 'Fixture' },
                    parse: parseFunction,
                }
            });
            return source;
        }

我现在有办法将C#Dynamic对象提供给网格视图,这样我就可以拥有真正的动态列。它虽然带了我很多实验!

希望这有助于其他人。

基兰