0
我有一個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
}
}
由於您需要在'$ .ajax()''success'回調中調用'options.success(...您的數據...)',場景1不起作用。 ://docs.telerik.com/kendo-ui/framework/datasource/crud#read-local – dimodi
@dimodi好的,我會嘗試,我不知道如何將數據傳回到下拉菜單 –
@dimodi這是解決我的問題。如果您將其作爲答案發布,我會接受它 –