У меня есть родительский & дочерние виджеты combobox, которые инициализируются значениями. Я указываю «инициализировано значениями», потому что у меня нет проблем, когда я имею дело с родительскими дочерними виджетами &, которые инициализируются без каких-либо значений.Отмена значений дочерних виджетах кендуи, когда родительский виджет испытывает событие изменения
Вот код родительского инициализации виджета:
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
});
В родителя «s выберите событие, я делаю это:
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);
должно быть достаточно, чтобы очистить выбор от дочернего виджета. Распечатки на консоли во время выполнения показывают, что значения «". Однако в пользовательском интерфейсе я все еще вижу старые значения дочернего виджета. Поэтому, если старый dataText дочернего виджета был «Tokyo» с dataValue из 3, я бы увидел, что значение «3» отображается в дочернем виджетах. Любые моменты будут с благодарностью оценены.
Если каскадное свойство установлено, то $ ("# ребенок") значение (""); и $ ("# child") .. trigger ('change'); должно быть все, что вам нужно. –
so.. проблема решена? –