将数据绑定到kendo下拉列表中
问题描述:
我有一个kendo网格,该列中有一个自定义过滤器模板,它是一个下拉列表。我无法将数据填充到下拉列表中。将数据绑定到kendo下拉列表中
我想要的是让选项是该列中所有记录的所有唯一值。
侧面问题:有没有更简单的方法来填充列的唯一值的下拉列表?由于这是放置在下拉列表中最合乎逻辑的内容,我希望可能会有一些内置的方式?
我想要做的是让它调用一个返回JSON指定选项的服务。
下面我有3种方法,我试着编写基于谷歌搜索的数据列字段,导致在这个论坛上很老的话题,这就是为什么我希望有一个简单的方法。前两个不起作用,但第三个(硬编码)工作。
1)此调用命中服务器并返回JSON,但不会填充下拉列表。
{
"field": "location_name",
"title": "Location",
"filterable": {
cell: {
template: function (args) {
args.element.kendoDropDownList({
dataTextField: "optionText",
dataValueField: "optionValue",
valuePrimitive: true,
dataSource: {
transport: {
read:
function(options) {
$.ajax({
type: "GET",
url: "/Patrol/Report.aspx/GetOptions",
data: "d",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
return msg; //tried with and without the return
}
});
}
}
}
});
},
showOperators: false
}
}
2)该调用完全不
{
"field": "location_name",
"title": "Location",
"filterable": {
cell: {
template: function (args) {
args.element.kendoDropDownList({
dataTextField: "optionText",
dataValueField: "optionValue",
valuePrimitive: true,
dataSource: {
transport: {
read: {
dataType: "jsonp",
url: "/Patrol/Report.aspx/GetOptions",
}
}
}
});
},
showOperators: false
}
}
3)硬打服务器编码数据源的数据:这正常工作
{
"field": "location_name",
"title": "Location",
"filterable": {
cell: {
template: function (args) {
args.element.kendoDropDownList({
dataTextField: "optionText",
dataValueField: "optionValue",
valuePrimitive: true,
dataSource:
[{"optionText": "HP","optionValue": "HP"}, {"optionText": "Loc2","optionValue": "ID2"}]
});
},
showOperators: false
}
}
答
方案1不起作用,因为您需要拨打options.success(...your data...)
成功回拨$.ajax()
:
http://docs.telerik.com/kendo-ui/framework/datasource/crud#read-loc al
由于您需要在'$ .ajax()''success'回调中调用'options.success(...您的数据...)',场景1不起作用。 ://docs.telerik.com/kendo-ui/framework/datasource/crud#read-local – dimodi
@dimodi好的,我会尝试,我不知道如何将数据传回到下拉菜单 –
@dimodi这是解决我的问题。如果您将其作为答案发布,我会接受它 –