Kendo DropDownList 在 AJAX 之后选择值
2018-04-27
2645
我尝试在 AJAX 数据传来后选择 DropDownList 值,但我的解决方案不起作用 这是我的代码:
function openWindow(e) {
var wdw = $("#myWindow").data("kendoWindow");
wdw.open();
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.url = '@Url.Action("BindingList", "AttributeBinding")' + "?formId=" + dataItem.FormId;
grid.dataSource.read();
$("#title").html(dataItem.FormTitle);
$("#dropdown").kendoDropDownList({
optionLabel: "- please select -",
dataTextField: "StringValue",
dataValueField: "Id",
dataSource: {
transport: {
read: {
url: '@Url.Action("PopUpBind", "AttributeBinding")',
dataType: "json",
},
},
requestEnd: function () {
$("#dropdown").data('kendoDropDownList').value(dataItem.MultiLinkerProductAttributeId);
}
}
});
};
加载 DropDown 后,我可以通过 Web 浏览器控制台设置 #dropdown 值,但此代码不适用于 dataSource 中的 requestEnd 函数
1个回答
当数据请求完成时,将触发 DataSource 中的事件 requestEnd , 但 数据不必绑定到小部件。由于选择指的是小部件( DropDownList ),您应该使用 dataBound
您的代码将类似于:
function openWindow(e) {
var wdw = $("#myWindow").data("kendoWindow");
wdw.open();
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.url = '@Url.Action("BindingList", "AttributeBinding")' + "?formId=" + dataItem.FormId;
grid.dataSource.read();
$("#title").html(dataItem.FormTitle);
$("#dropdown").kendoDropDownList({
optionLabel: "- please select -",
dataTextField: "StringValue",
dataValueField: "Id",
dataSource: {
transport: {
read: {
url: '@Url.Action("PopUpBind", "AttributeBinding")',
dataType: "json",
},
}
},
dataBound: function(e) {
this.value(dataItem.MultiLinkerProductAttributeId);
}
});
};
OnaBai
2018-04-27