Kendo DropDownList requestEnd 推送值未定义
Kendo DropDownList requestEnd push value undefined
我有一个通过数据属性初始化的 DropDownList。我需要向列表中添加一个项目,但我使用的代码在我按下新选项后将值显示为 'undefined'。
这是我使用数据属性的元素(工作正常):
<select id="#people_list"
name="person_id"
class="form-control"
data-role="dropdownlist"
data-source="datasource_people"
data-option-label="Select A Name"
data-auto-bind="true"
data-text-field="name"
data-value-Field="name"
data-ignore-case="true"
data-filter="startswith"
>
</select>
这是我的数据源参数(工作正常):
datasource_people = new kendo.data.DataSource({
type: "json",
serverFiltering: true,
transport: {
read: {
dataType: 'json',
type: 'GET',
url: '/restful/people/'
}
},
filter: {
field: "status",
operator: "eq",
value: 1
},
schema: {
data: function(response) {
return response.data.people;
},
model: {
id: "person_id",
fields: {
person_id: {type: "number"},
name: { type: "string"}
}
},
errors: "error",
total: function(response) {
return response.data.total;
}
}
});
然后稍后(不起作用 - 添加新项目 'undefined'):
$("#people_list").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: {
datasource_people,
requestEnd: function (e) {
e.response.push({text: "John", value: "John"});
}
}
});
您应该像这样定义数据源的请求结束事件,而不是将其放在 DropDownList 的启动代码中
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "http://demos.telerik.com/kendo-ui/service/products",
dataType: "jsonp"
}
},
requestEnd: function(e) {
var response = e.response;
var type = e.type;
}
});
查看了一些文档以了解其他方法,这非常有效。
$("#people_list").getKendoDropDownList().dataSource.insert({
person_id: "John",
name: "John"
})
谢谢
我有一个通过数据属性初始化的 DropDownList。我需要向列表中添加一个项目,但我使用的代码在我按下新选项后将值显示为 'undefined'。
这是我使用数据属性的元素(工作正常):
<select id="#people_list"
name="person_id"
class="form-control"
data-role="dropdownlist"
data-source="datasource_people"
data-option-label="Select A Name"
data-auto-bind="true"
data-text-field="name"
data-value-Field="name"
data-ignore-case="true"
data-filter="startswith"
>
</select>
这是我的数据源参数(工作正常):
datasource_people = new kendo.data.DataSource({
type: "json",
serverFiltering: true,
transport: {
read: {
dataType: 'json',
type: 'GET',
url: '/restful/people/'
}
},
filter: {
field: "status",
operator: "eq",
value: 1
},
schema: {
data: function(response) {
return response.data.people;
},
model: {
id: "person_id",
fields: {
person_id: {type: "number"},
name: { type: "string"}
}
},
errors: "error",
total: function(response) {
return response.data.total;
}
}
});
然后稍后(不起作用 - 添加新项目 'undefined'):
$("#people_list").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: {
datasource_people,
requestEnd: function (e) {
e.response.push({text: "John", value: "John"});
}
}
});
您应该像这样定义数据源的请求结束事件,而不是将其放在 DropDownList 的启动代码中
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "http://demos.telerik.com/kendo-ui/service/products",
dataType: "jsonp"
}
},
requestEnd: function(e) {
var response = e.response;
var type = e.type;
}
});
查看了一些文档以了解其他方法,这非常有效。
$("#people_list").getKendoDropDownList().dataSource.insert({
person_id: "John",
name: "John"
})
谢谢