剑道数据源示意图.数据不能用于下拉列表
Kendo datasource shema.data does not work for dropdownlist
我有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
},
.....
]
}
就在这个响应之后,我得到了以下奇怪的错误:
TypeError: d.d is undefined;下拉列表没有显示json响应。当我用odata web api填充kendo grid时,数据源中的以下代码解决了我的问题:
schema: {
data: function (res) {
return res.value;
}
},
但是现在,当我将它用于下拉列表时,它根本不起作用,无法访问。
PS>对不起,我的英语不好。
你的数据是在你的响应的内部对象"值"上,你的响应包括页面大小,元数据url所以我们需要修饰kendo dataSource可以理解的数据这里是一个例子
:注意删除"type: 'odata'"并检查,因为您说的是数据源,其中数据来自数据函数,我认为不需要它。
var postsDataSource = new kendo.data.DataSource({
serverFiltering: true,
transport: {
read: {
url: "/odata/Posts",
dataType: "json"
},
},
schema: {
model: {
Id: "Id",
fields: {
Id: { type: "number" },
NameRu: { type: "string" },
NameKz: { type: "string"},
ShortName: { type: "string" }
}
},
data: function (response) {
return response.value;
},
total: function(response) {
return response.odata.count;
}
},
});
试一下,希望能有所帮助。
- JQuery Mobile UL列表仍然不能用于动态列表
- XMLHttpRequest可用于IE8,但不能用于googlechrome
- 如果使用JSONP来解决同源策略,则可以'它不能用于XSS漏洞利用
- 具有Obj和Cubemap的Three.js场景,接收THbindTexture:纹理不能用于多个目标
- 为什么我的代码不能用于查找 JavaScript 中的数组中是否存在值
- 为什么我可以使用 FileSystemObjects 来读取和写入客户端二进制文件,而不能用于读取和发送到服务器
- Rails:为什么我的ajax创建的对象不能用于触发javascript
- 为什么我的Javascript SWITCH语句不能用于HEX颜色分配
- rails-ajax微调器可用于开发,但不能用于生产
- 剑道数据源示意图.数据不能用于下拉列表
- chart.js图例不能用于饼状图
- insertRow()不能用于FOR循环
- jsp HttpURLConnection getResponseCode不能用于'http://192.168
- 属性被禁用,不能用于Xhtml
- for循环不能用于JavaScript动画
- Bootstrap tabcollapse在小屏幕上不能用于ajax调用
- 为什么click()不能用于附加元素
- Gulp.watch()不能用于FTP更新
- 在Angular.js中,双向数据绑定不能用于指令
- ShallowCompare不能用于不可变js