Kendo ui 剑道数据源返回自定义值

Kendo ui 剑道数据源返回自定义值,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我有一个像这样的远程数据源 var datasource = new kendo.data.DataSource({ autoSync: false, batch: true, transport: { read: { url: "some_url", dataType: "json" } }, serverFiltering: true, serverGrouping

我有一个像这样的远程数据源

var datasource = new kendo.data.DataSource({
    autoSync: false,
    batch: true,
    transport: {
        read: {
            url: "some_url",
            dataType: "json"
        }
    },
    serverFiltering: true,
    serverGrouping: true,
    serverPaging: false,
    page: 1,
    pageSize: 10,
    schema: {
        data: "results",
        total: "total",
        model: {
            id: "id"
        }
    }    
});
我希望像这样从服务器端获得一个附加值

    $response = array(
        'results' => $product_alerts,
        'total'   => $total,
        'total_approved_products'  => 27
    );
    echo json_encode($response);
    exit;   
我是否可以在客户端获得所有已批准产品的价值


非常感谢

模式
定义中添加一个
解析
函数,您可以在该函数中提取
已批准的所有产品
,以及您想要的任何产品。例如:

schema         : {
    data : "results",
    total: "total",
    model: {
        id: "id"
    },
    parse: function (d) {
        // Get total_approved_products and display alert.
        alert(d.total_approved_products);
        // Return data in order to be included in the `DataSource.data`
        return d;
    }
}

schema
定义中添加一个
parse
函数,从中提取
total\u approved\u products
以及您想要的任何内容。例如:

schema         : {
    data : "results",
    total: "total",
    model: {
        id: "id"
    },
    parse: function (d) {
        // Get total_approved_products and display alert.
        alert(d.total_approved_products);
        // Return data in order to be included in the `DataSource.data`
        return d;
    }
}

@OnaBai解决方案的替代方案如下。这两种解决方案都不是完美的,但是在解析时提取额外的对象是危险的,如果您已经实现了读取/更新/创建/删除,那么它们的响应对象也会命中解析,并且您的总的\u批准的\u产品很可能不在那里。我建议在数据源读取时使用完整事件

read: {
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: _op.serviceBaseUrl + "ReadX",
                    complete: function (jqXhr, textStatus) {
                            var result = jQuery.parseJSON(jqXhr.responseText);
                            alert(result.d.total_approved_products);
                     }
        }

@OnaBai解决方案的替代方案如下。这两种解决方案都不是完美的,但是在解析时提取额外的对象是危险的,如果您已经实现了读取/更新/创建/删除,那么它们的响应对象也会命中解析,并且您的总的\u批准的\u产品很可能不在那里。我建议在数据源读取时使用完整事件

read: {
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: _op.serviceBaseUrl + "ReadX",
                    complete: function (jqXhr, textStatus) {
                            var result = jQuery.parseJSON(jqXhr.responseText);
                            alert(result.d.total_approved_products);
                     }
        }
你说“危险”。。。我认为添加一个if:
if(d.total\u approved\u products)警报(d.total\u approved\u products)非常容易解决这个问题。看起来不那么“危险”,你节省了很多代码行!你说“危险”。。。我认为添加一个if:
if(d.total\u approved\u products)警报(d.total\u approved\u products)非常容易解决这个问题。看起来不那么“危险”,你节省了很多代码行!