Как вы предотвращаете повторное заполнение выпадающего списка Kendo UI при чтении данных?

#javascript #kendo-ui #kendo-combobox

#javascript #kendo-ui #kendo-выпадающий список

Вопрос:

Я использую Kendo UI для реализации нескольких выпадающих списков на моей странице. Второй выпадающий список зависит от значения первого для заполнения, но я не хочу использовать опцию «Каскад», поскольку второй выпадающий список никогда не должен быть отключен.

Моя проблема заключается в следующем:
при изменении выпадающего списка A в выпадающем списке B должны быть указаны соответствующие значения, но само поле должно быть чистым. Я очищаю текст и значение выпадающего списка B, но когда я запускаю чтение источника данных или что-то еще, выпадающий список заполняется старым текстом.

Подразделом является выпадающий список B:

     var subentity = $('#subentity').getKendoComboBox();

    $("#subentity").val(null);
    subentity.value(null);

    subentity.dataSource.data({});

    subentity.text('');
  

Я попробовал несколько вариантов и переместил туда, где значения очищены, и, похоже, не могу заставить его работать.

Есть идеи? Спасибо!

РЕДАКТИРОВАТЬ: Выпадающий список B (subentity) инициализируется следующим образом:

 $("#subentity").kendoComboBox({
    placeholder: "--- Enter a Sub-Entity ---",
    autoBind: false,
    animation: false,
    dataSource: {
        type: "json",
        serverFiltering: true,
        transport: {
            read: {
                url: ResolveUrl('~/Entity/GetSubentities')
            },
            parameterMap: function () {
                return {
                    entityId: $('#hdnEntityId').val(),
                    subentityName: $("#subentity").data("kendoComboBox").text()
                }
            }
        }
    },
    dataTextField: "Name",
    dataValueField: "Id",
    delay: 500,
    change: onChangeOfSubentityCombo,
    filter: "contains",
    suggest: true,
    value: $('#hdnSubentityName').val()
});
  

Комментарии:

1. Не могли бы вы создать полностью рабочий пример в jsFiddle или JSBin или что-то в этом роде? Неясно, где вы получаете новые значения для выпадающего списка B при изменении выпадающего списка A и где вы выполняете DataSource.read()

2. @CodingWithSpike Может быть сложно создать скрипку, поскольку я извлекаю информацию из базы данных через контроллер MVC. Я обновил свой вопрос с помощью subentity datasource, который, я надеюсь, несколько поможет.

Ответ №1:

Я думаю, что ваше значение заменяется этой строкой.

 value: $('#hdnSubentityName').val()
  

измените его на

 value:""
  

Это приведет к отображению вашего поля «— Введите дочернюю сущность —«, однако вы также можете установить заполнитель пустым.

 placeholder: ""
  

Комментарии:

1. Несколько дней я работал над этим. Дней. Большое вам спасибо!