如何从AJAX响应数据中呈现Kendo UI网格?

时间:2013-12-23 10:56:02

标签: javascript jquery ajax kendo-ui kendo-grid

我有这段代码从静态网址获取json对象,然后渲染网格。但我想使用json数据作为AJAX响应进行重新审核,然后使用此响应文本渲染网格。 因为实际部署,我无法使用静态网址。

    $("#grid").kendoGrid({
    dataSource: {
        type: "json",
        transport: {
            read: {url: "http://url/returnsjsonobject.php"}
            //THIS GETS DATA FROM STATIC URL BUT I WANT TO READ DATA AS AJAX RESPONSE
            //like read: somefunctioncall
            //or like read: somevariable
        },
        schema: {
            model: {
                fields: {
                    id: {type: "string", editable: false},
                    name: {type: "string"}

                }
            }
        },
        pageSize: 20
    },
    height: 430
    columns: [
        {field: "id", title: "ID", width: "20px", hidden: "true"},
        "name",
});

如果您有任何替代方法,请提前感谢您的帮助;我很乐意尝试。

1 个答案:

答案 0 :(得分:4)

请记住,transport.read.url不一定是常量,但可能是一个函数:

transport: {
    read: {
        url: function(options) {
            return "somefunctionalcall?id=" + options.id,
        },
        dataType: "json"
}

甚至将transport.read定义为函数:

transport: {
    read: function (options) {
        $.ajax({
            dataType: "json",
            url: "somefunctionalcall",
            success: function (d) {
                options.success(d);
            }
        });
    }
}