Odata $过滤器不检索值

时间:2012-02-01 16:30:20

标签: javascript filter odata jaydata

我有一个带有odata $select$filter的JS,可以使用"ct_portfolioid"

检索名为ct_portfoliocode过滤的字段

url似乎没有返回portfolioid。网址未定义。

var serverUrl = Xrm.Page.context.getServerUrl();
        var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
        var filter="ct_apxportfoliocodeSet?$select=ct_portfolioid&$filter=ct_portfoliocode eq '" + portfolioCode +"'";

        $.ajax({
            async: true,
            type: "GET",
            url: serverUrl + ODATA_ENDPOINT + "/"+filter,
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            beforeSend: function (XMLHttpRequest) {
                XMLHttpRequest.setRequestHeader("Accept", "application/json");
            },

1 个答案:

答案 0 :(得分:0)

作为手动编码协议数据的替代方案,您可以尝试JayData,通过JavaScript语言查询和本机crud操作支持为您提供基于OData的高级语义API。

使用JayData,您不必手动组装oData $filter, $sort, $select等表达式,另外还可以使用本机JavaScript语法。

使用JayData可以更轻松地实现上述查询:

$data.YourContext.filter(function(a) {return a.ct_portfolicode==this.portfolioCode;}, {portfolioCode: YourValue})
.map(function(p) {return p.ct_portfolioid;})
.toArray(...);

您可以从CodePlex

下载最新的JayData版本