2016-08-01 23 views
1

Ich habe eine ODataStore:DevExtreme - ODataStore URL

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

Der db Oracle ist und FEATID ist von Number(38) Datentyp. Die ODataStore wird in einer dxDataGrid verwendet. Wenn ich eine Zeile der dxDataGrid aktualisieren oder entfernen, habe ich immer den Fehler . Nach ein wenig Forschung fand ich heraus, dass das Problem der URL ist, im Moment, wenn der keyType ist Int32 die URL

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

ist, wenn ich die keyType zu Int64 ändern dann die URL wird

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

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

aber ich habe keine Ahnung, wie die uRL zu ändern:

aber für meinen db, um zu arbeiten, soll die uRL sein. Ich habe versucht, ein M statisch zur Spalte hinzuzufügen, aber dann wird es ein String und es ist immer noch falsch.

+0

Nach [dieser] (http://js.devexpress.com/Documentation/Guide/Data_Layer/Data_Source_Examples/?version=16_1#Data_Layer_Data_Source_Examples_OData_Edm_Literals) Artikel „OData definiert einige primitive Datentypen, die nicht in JavaScript dargestellt werden zum Beispiel Int64 ". Sie können also versuchen, die Klasse [EdmLiteral] (http://js.dedexpress.com/Documentation/ApiReference/Data_Layer/EdmLiteral/?version=16_1) zu verwenden, um Ihr Problem zu lösen. – Sergey

Antwort

0

Wenn Ihr OData einen Schlüssel mit "M" erfordert, ist der Schlüsseltyp Dezimal. Siehe das Primitive Data Types OData-Hilfethema. Stellen Sie also die Option keyType auf 'Decimal' ein, um das Problem zu beheben.

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