0

我得到了一系列属性,我想在网格中显示所有这些属性。

怎么做?可能吗?

这是我的代码:

function StartBuild(ProfileProperties) {
        var details = [];
        for (i = 0; i < ProfileProperties.length; i++) {
            details[i]=[{ name: ProfileProperties[i][0], email: ProfileProperties[i][1], phoneWork: ProfileProperties[i][2], Mobile: ProfileProperties[i][3], ManagerName: ProfileProperties[i][4] }];
        }
             $(document).ready(function () {
            var datasource = new kendo.data.DataSource({
                transport: {
                    type:"odata",
                    read: function (e) {
                        e.success(details);
                    },
                    pageSize: 10,
                    batch: false,
                    schema: {
                        model: {
                            fields: {
                                name: { editable: false },
                                Fname: { editable: false }
                            }
                        }
                    }
                }
            });
            $("#grid").kendoGrid({
                dataSource: datasource,
                pegable: true,
                sortable: {
                    mode: "single",
                    allowUnsort: false
                },
                columns: [{
                    field: "name",
                    title: "name",
                    filterable: {
                        cell: {
                            enabled:true
                        }
                    }
                }, {//[Bild, nameP, email,phonework, Mobile, ManagerName]
                    field: "email",
                    title: "email"
                }, {
                    field: "phoneWork",
                    title: "phoneWork"
                }, {
                    field: "Mobile",
                    title: "Mobile"
                }, {
                    field: "Manager",
                    title: "Manager"
                }],
                filterable: {
                    mode: "row"
                },
            });
        });
    }

只有当我写details[0]它时才会显示第一个属性,否则它不会显示任何东西。

4

1 回答 1

0

看起来有几个问题。

http://dojo.telerik.com/@Stephen/uVOjAk

首先,传输设置不正确。pageSize、batch 和 schema不是传输配置的一部分……您需要将它们从传输块中取出,并将它们放在数据源块中。

你要:

var datasource = new kendo.data.DataSource({
    transport: {
        type:"odata",
        read: function (e) {
            e.success(details);
        }
    },
    pageSize: 10,
    batch: false,
    schema: {
        model: {
            fields: {
                name: { editable: false },
                Fname: { editable: false }
            }
       }
    }
});

而不是(你有什么):

var datasource = new kendo.data.DataSource({
    transport: {
        type:"odata",
        read: function (e) {
            e.success(details);
        },
        pageSize: 10,
        batch: false,
        schema: {
            model: {
                fields: {
                    name: { editable: false },
                    Fname: { editable: false }
                }
            }
        }
    }
});

其次,细节需要是对象数组,而不是对象数组的数组。

你要:

var details = [];
for (i = 0; i < ProfileProperties.length; i++) {
    details.push({ name: ProfileProperties[i][0], email: ProfileProperties[i][1], phoneWork: ProfileProperties[i][2], Mobile: ProfileProperties[i][3], ManagerName: ProfileProperties[i][4] });
}

代替:

var details = [];
for (i = 0; i < ProfileProperties.length; i++) {
    details[i]=[{ name: ProfileProperties[i][0], email: ProfileProperties[i][1], phoneWork: ProfileProperties[i][2], Mobile: ProfileProperties[i][3], ManagerName: ProfileProperties[i][4] }];
}

其他两个不直接导致问题但不正确的问题是:

  1. 您的 dataSource.schema 配置与您的实际数据完全不匹配。架构确实需要匹配实际数据的字段,否则它无法匹配配置。
  2. 您在网格配置中拼写了“pageable”错误。
于 2017-04-04T13:10:16.027 回答