0

我有以下 Kendo MVVM 网格:

<div id="permissionTypeGrid" data-role="grid"
            data-sortable="true"
            data-scrollable="true"
            data-editable="true"
            data-toolbar="['create', 'save', 'cancel']"
            data-bind="source: permissionTypes"
            data-auto-bind="true"
            data-columns="[
                { 'field': 'PermissionType', 'width': 60  },
                { 'field': 'Description', 'width': 300 },
                { 'field': 'DisplayOrder', 'width': 60 },
                { 'command': [{name: 'destroy', text: 'Delete'}], 'width': 40 }
            ]">
        </div>

以及以下视图模型:

 self.permissionTypeGrid = kendo.observable({
        isVisible: true,
        permissionTypes: new kendo.data.DataSource({
            schema: {
                parse: function (results) {
                    var permissionTypes = [];
                    for (var i = 0; i < results.Data.Data.length; i++) {
                        var permissionType = {
                            PermissionType: results.Data.Data[i].SystemPermissionTypeCode,
                            Description: results.Data.Data[i].SystemPermissionTypeDescription,
                            DisplayOrder: results.Data.Data[i].DisplayOrder
                        };
                        permissionTypes.push(permissionType);
                    }
                    return permissionTypes;
                }
            },
            transport: {
                read: {
                    url: "/api/ServiceApi?method=Ref/SystemPermissionTypes",
                },
                create: {
                    url: "/api/ServiceApi?method=Ref/SystemPermissionTypes"
                },
                update: {
                    url: "/api/ServiceApi?method=Ref/SystemPermissionTypes"
                },
                destroy: {
                    url: "/api/ServiceApi?method=Ref/SystemPermissionTypes"
                },
                parameterMap: function (options, operation) {
                    if (operation !== "read" && options.models) {
                        return { models: kendo.stringify(options.models) };
                    }
                }
            }
        })
    });
    kendo.bind($("#permissionTypeGrid"), self.permissionTypeGrid);

Transport.read 工作正常,但 transport.create 的 url 永远不会执行,parameterMap 函数也不会执行。如果我在网格中添加一条新记录,然后单击“保存更改”,是否应该始终调用 parameterMap 函数?此外,按预期发出了读取的 http 请求,但没有为创建生成任何请求。

4

1 回答 1

1

您的架构需要和 ID。

如果您model: { id: "DisplayOrder" },在架构后添加该行,您的创建将在您单击保存更改时开始触发。

当然,这不太可能是您想要用于 ID 的字段,但它应该可以帮助您工作。

schema: {
   model: { id: "DisplayOrder" },
   parse: function (results) {
    ...
}
于 2014-07-10T00:41:25.297 回答