我有父母&使用值初始化的子组合框小部件。我指定“用值初始化”,因为当我处理父母和母亲时,我没有任何问题。初始化没有任何值的子窗口小部件。
这是父窗口小部件初始化代码:
var jsonObj = GetSavedJSONObject(key);
var value = (jsonObj) ? '' + jsonObj.Id : '';
var text = (jsonObj) ? '' + jsonObj.Name : '';
$("#" + key).kendoComboBox({
placeholder: placeholder,
dataTextField: dataText,
dataValueField: dataValue,
filter: "contains",
autoBind: false,
enable: canEditAll,
dataSource: {
type: "jsonp",
transport: {
read: {
url: urlValue,
type: "POST"
}
},
error: function (e) {
console.log(e);
}
},
value : value,
text : text,
select: selectEvent,
change: changeEvent
});
这是子窗口小部件初始化代码:
var jsonObj = GetSavedJSONObject(key);
var value = (jsonObj) ? '' + jsonObj.Id : '';
var text = (jsonObj) ? '' + jsonObj.Name : '';
$("#" + key).kendoComboBox({
placeholder: placeholder,
cascadeFrom: cascadeFromId,
dataTextField: dataText,
dataValueField: dataValue,
filter: "contains",
autoBind: false,
delay: 300,
enable: canEditAll,
dataSource: {
type: "jsonp",
serverFiltering: true,
transport: {
read: {
url: urlValue,
data: getRateTypeSelected,
type: "POST"
}
},
error: function(e) {
console.log(e);
}
},
value : value,
text : text,
select: selectEvent2,
change: changeEvent2
});
在父的select事件中,我这样做:
var childCombobox = $("#childWidget").data("kendoComboBox");
if (childCombobox ) {
//setting parent value here
e.sender.value(dataItem.Id);
//should unset/clear the child widget per docs
childCombobox.value(null);
childCombobox.dataSource.read();
if ($"#parentWidget").val()){
childCombobox.enable(true);
}else{
childCombobox.enable(false);
}
console.log(childCombobox.value());
console.log(childCombobox.text());
console.log(childCombobox.input.val());
console.log($("#childWidget").val());
console.log(childCombobox);
}
从我见过的文档中,执行此操作:
combobox .value(null);
应该足以清除子窗口小部件中的选择。执行期间控制台中的打印输出显示值为“”。但是,在UI中,我仍然看到显示子窗口小部件的旧值。因此,如果子窗口小部件的旧dataText是“Tokyo”,dataValue为3,我会在子窗口小部件中看到值“3”。任何积分都将不胜感激。
答案 0 :(得分:0)
根据Select事件的文档:
"以编程方式选择项目时不会触发事件。"
他们说要使用Cascade活动:
"通过API或用户互动更改窗口小部件的值时触发。"
http://docs.telerik.com/kendo-ui/api/javascript/ui/combobox#events-cascade