Odata 剑道网格过滤器+;奥达塔+;Int64字段

Odata 剑道网格过滤器+;奥达塔+;Int64字段,odata,kendo-ui,Odata,Kendo Ui,我试图根据Kendo Grid中的Int64字段过滤数据,该网格使用Odata作为服务。根据Odata规范,Int64字段要求过滤器值在末尾附加一个“L”,如666423361622L。因此,我将剑道网格过滤器设置为: {{ field: \"MyField\", operator: \"eq\", value: 666423361622L }} ,但这会引发一个错误:SyntaxError:identifier在数值文本之后立即启动 ,显示666423361622L,但它不喜欢。有没有一种方

我试图根据Kendo Grid中的Int64字段过滤数据,该网格使用Odata作为服务。根据Odata规范,Int64字段要求过滤器值在末尾附加一个“L”,如
666423361622L
。因此,我将剑道网格过滤器设置为:

{{ field: \"MyField\", operator: \"eq\", value: 666423361622L }}
,但这会引发一个错误:
SyntaxError:identifier在数值文本之后立即启动

,显示666423361622L,但它不喜欢。有没有一种方法我可以格式化它,这样它就可以工作了?如果我使用不带L的值(666423361622),它会在我的Odata服务中的PraseInt函数上引发异常。

为了解决这个问题,我截获了ajax请求并修改了发送给Odata服务的数据。只需手动添加“L”。像这样:

$(document).ajaxSend(function (e, jqxhr, settings) {
    var re = /(FIELDNAMEFORINT64\+(eq|ge|le)\+(\d)*)/g;
    var found = settings.url.match(re);

    if (found) {                
       for (var i = 0; i < found.length; i++) {
           settings.url = settings.url.replace(found[i], found[i] + "L");
       }
    }            
});
$(文档).ajaxSend(函数(e、jqxhr、设置){
var re=/(FIELDNAMEFORINT64\+(eq | ge | le)\+(\d)*)/g;
var found=settings.url.match(re);
如果(找到){
对于(变量i=0;i
删除L时会发生什么?如果我使用不带L的值,我的服务中的ParseInt会出现en异常。因此,我需要将值格式化为Int64。