Kendo重新绑定dropdownlist数据源

时间:2016-08-30 19:19:03

标签: javascript jquery asp.net json kendo-ui

我有一段html,其中包含一组相当大的输入控件,这些控件是从服务器返回的一组JSON数据动态生成的。

HTML控件是根据JSON数据以及与之关联的项目构建的。

下拉列表选择项使用以下属性进行绑定:

data-value-field='optionValue'
function CreateSelectList(label, i, name) { var element = '<select data-bind=\'source:reportFormData.FormField[' + i + '].Options.Option\' data-value-field=\'optionValue\' data-text-field=\'optionText\' id=\'' + name + '\' name=\'' + name + '\' data-role=\'dropdownlist\'></select>'; return CreateFormField(label, element); }
var ddlData = $("#ddl_location").data("kendoDropDownList"); ddlData.setDataSource(jsonData.Option);

这是创建输入选择控件的javascript:

$("#ddl_location").kendoDropDownList({
    dataTextField: "optionText",
    dataValueField: "optionValue",
    dataSource: jsonData.Option
});

问题:我需要有选择地修改其中一个下拉列表的数据源。我无法弄清楚如何以编程方式更改数据源。

这不起作用:

ddlData.trigger("change");
ddlData.refresh();

也不是这样:

jsonData.Option

我也试过在以下之后调用它们:

Report.FormField[i].Options.Option

"Option": [ {"optionText": "All", "optionValue": "0"}, ...的格式与原始JSON元素{ "Report": { "report_id": "1", "FormField": [{ "description": "End DateTime Picker", "name": "end_date", "label": "End Date", "FieldType": "datepicker", "displayOrder": "2", "isRequired": "1", "requiredFieldValidationMessage": "End Date is required." }, { "description": "Client", "name": "ddl_client", "label": "Client", "FieldType": "dropdownlist", "displayOrder": "3", "isRequired": "0", "Options": { "Option": [{ "optionText": "All", "optionValue": "0" }, { "optionText": "*Airport Business Center", "optionValue": "68955" }, { "optionText": "*Cushman & Wakefield", "optionValue": "68996" }, { "optionText": "*IBMC College ", "optionValue": "68804" } ... } 的格式相同,例如$(document).ready(function(){});
这里的区别在于它是需要替换原始数据源的新数据子集。

这里是用于最初创建控件的完整JSON的摘录:

$("#foo").submit

1 个答案:

答案 0 :(得分:0)

在dataSource上使用read():

var ddlData = $("#ddl_location").data("kendoDropDownList");
ddlData.setDataSource(jsonData.Option);
ddlData.dataSource.read();