0

我正在使用带有 Odata 类型的数据源的 Kendo Grid。我无法从数据源在数据库中创建新行。这是我的数据源代码:

var ds = new kendo.data.DataSource({
            type: "odata",
            transport: {
                read: {
                    url: baseUrl,
                    dataType: "json"
                },
                update: {
                    url: function (data) {
                        return baseUrl + "('" + data.ID_Agenzia + "')";
                    }
                },
                create: {
                    url: baseUrl
                },
                destroy: {
                    url: function (data) {
                        return baseUrl + "('" + data.ID_Agenzia + "')";
                    }
                }
            },
            schema: {
                model: {
                    id: "ID_Agenzia",
                    fields: {
                        ID_Agenzia: { type: "string" },
                       // etc... my other fields omitted for brevity.
                    }
                }
            },
            pageSize: 20,
            serverPaging: true,
            serverFiltering: true,
            serverSorting: true
        });

然后我尝试了一个带有自动工具栏创建的简单网格(非常标准,我想我可以省略代码),使用这个 DS。

据我了解,Kendo 有一个方法“isNew”来区分创建/更新,并检查 ID 是否 === 为默认值。我在谷歌上搜索的所有示例都使用 ID 作为数字增量值......但在我的表中,ID 是一个字符串(显然是唯一的),需要由用户插入!!

希望我已经很好地解释了自己,问题应该很清楚:如果用户插入 ID,数据源将无法识别这是一个创建操作......否则,如果我禁止手动插入 ID,则创建将起作用.. . 但是该行将以默认值(空字符串)插入数据库中,这是错误的!

我该如何解决这个问题?谢谢。

[编辑] 附加信息:我正在使用最新版本的 Kendo-ui 和 Odata 2.0

4

0 回答 0