我有一个ODataStore:

var storeUsers = new DevExpress.data.ODataStore({
    type: "odata",
    jsonp: false,
    url: SERVICE_URL,
    key: "FEATID",
    keyType: "Int32"
});


数据库是Oracle,FEATIDNumber(38)数据类型。 ODataStore用于dxDataGrid
当我更新或删除dxDataGrid的行时,总是出现Bad request, error in query syntax的错误。
经过一番研究,我发现问题出在URL,如果keyTypeInt32,则URL是

http://.../DataService.svc/PX_USERS(7)


如果我将keyType更改为Int64,则网址变为

http://.../DataService.svc/PX_USERS(7L)


但是对于我的数据库,为了正常工作,URL应该是:

http://.../DataService.svc/PX_USERS(7M)


但我不知道如何更改网址。我试图将M静态地添加到该列中,但是随后它变成了String,这仍然是错误的。

最佳答案

如果您的OData需要带有“ M”的密钥,则密钥类型为Decimal。请参见Primitive Data Types OData帮助主题。因此,将keyType选项设置为'Decimal'即可解决此问题。

var storeUsers = new DevExpress.data.ODataStore({
    type: "odata",
    jsonp: false,
    url: SERVICE_URL,
    key: "FEATID",
    keyType: "Decimal"
});

关于javascript - DevExtreme-ODataStore网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38695354/

10-10 06:12