【发布时间】:2014-08-19 08:36:36
【问题描述】:
我有 Odata WebApi,我想用那里的数据填充我的下拉列表。 我有数据源:
var postsDataSource = new kendo.data.DataSource({
type: 'odata',
serverFiltering: true,
transport: {
read: {
url: "/odata/Posts",
dataType: "json"
},
},
schema: {
model: kendo.data.Model.define({
Id: "Id",
RegionId: "RegionId"
}),
data: function (res) {
debugger;//this code is inaccessible!
console.log(res);
return res.value;
}
},
});
和这样的下拉列表:
var posts = $("#searchPost").kendoDropDownList({
optionLabel: "Выберите регион...",
dataTextField: "NameRu",
dataValueField: "Id",
dataSource: postsDataSource,
}).data("kendoDropDownList");
这部分代码执行 odata 查询并在 firebug 的控制台中返回以下 json 响应:
{
"odata.metadata":"http://localhost:11029/odata/$metadata#Posts","odata.count":"13","value":[
{
"Id":0,"Number":"Lenina45","RegionId":1,"NameRu":"\u041b\u0435\u043d\u0438\u043d\u0430 45","NameKz":"\u041b\u0435\u043d\u0438\u043d\u0430 45","ShortName":"\u041b\u0435\u043d\u0438\u043d\u0430 45","DateBegin":null,"DateEnd":null,"OptimisticLockField":null
},{
"Id":1,"Number":"Zhumabaeva15","RegionId":2,"NameRu":"\u0416\u0443\u043c\u0430\u0431\u0430\u0435\u0432\u0430 15","NameKz":"\u0416\u0443\u043c\u0430\u0431\u0430\u0435\u0432\u0430 15","ShortName":"\u0416\u0443\u043c\u0430\u0431\u0430\u0435\u0432\u0430 15","DateBegin":null,"DateEnd":null,"OptimisticLockField":null
},
.....
]
}
在此响应之后,我收到以下奇怪的错误:
类型错误:d.d 未定义; 并且下拉列表没有显示我上面的 json 响应。 当我使用 odata web api 填充剑道网格时,数据源中的以下代码解决了我的问题:
schema: {
data: function (res) {
return res.value;
}
},
但是现在,当我将它用于下拉列表时,它根本不起作用,无法访问。
PS>对不起,我的英语不好。
【问题讨论】:
标签: javascript kendo-ui odata