Извлечение второго набора данных с помощью kendodropdown make .значение () для получения .text()

#javascript #kendo-ui

#javascript #kendo-пользовательский интерфейс

Вопрос:

У меня есть выпадающий список, который заполняет kendodropdown в зависимости от значения выпадающего списка. Он вызывает следующую функцию:

 function showHideAttributes() {
    clearCover();
    const org = "@ViewContext.RouteData.Values["id"]";
    try {
        var ddl = $("#speciesAttribute").data("kendoDropDownList");
        ddl.dataSource.data([]); // clears dataSource
        ddl.text(""); // clears visible text
        ddl.value(""); // clears invisible value
    } catch (e) {}
    switch ($("#attributeType").val()) {
        case "CoverCategory":
        {
            $(".cover").removeClass("hidden");


            $.getJSON("/FormReport/GetGroundCoverCommonSpecies/"   org,
                function(data) {
                    speciesCommonData = data;

                    $("#speciesAttribute").kendoComboBox({
                        autoWidth: true,
                        dataTextField: "Text",
                        dataValueField: "Value",
                        dataSource: speciesCommonData,

                        delay: 500,
                        filter: "startswith",
                        suggest: true,
                        change: fillInData2
                    });
                });
            break;
            }
        case "CoverSpecies":
            {
                $(".cover").removeClass("hidden");
                $.getJSON("/FormReport/GetGroundCoverNRCSSpecies/"   org,
                    function(data) {
                        speciesCommonData = data;

                        $("#speciesAttribute").kendoComboBox({
                            autoWidth: true,
                            dataTextField: "Text",
                            dataValueField: "Value",
                            dataSource: speciesCommonData,

                            delay: 500,
                            filter: "startswith",
                            suggest: true,
                            change: fillInData2
                        });
                    });
            break;
        }

        default:
        {
            $(".cover").addClass("hidden");
        }
    }
     
}
  

Если я выберу «CoverCategory», а затем выберу «Голую почву» из kendocombobox, я получу следующее:

 $("#speciesAttribute").data("kendoComboBox").value() // gets G_BARE which is correct
  

Если я затем выберу «CoverSpecies», который удаляет другие данные, а затем снова выберу «CoverCategory», а затем выберу «Голую почву» для извлечения из исходной базы данных, я получу следующее:

 $("#speciesAttribute").data("kendoComboBox").value() //gets "Bare Soil" which is the text and not the value
  

Я проверил, что источник данных по-прежнему имеет правильное значение.
Кто-нибудь знает, как решить эту проблему?

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

1. Можете ли вы добавить код, в котором вы пытаетесь получить значение, используя $(«#speciesAttribute»).data(«kendoComboBox»).value() ? Кроме того, вы проверили, что метод GetGroundCoverNRCSSpecies возвращает поле значения, а не текст дважды?

2. Кроме того, является ли текст, который вы получаете обратно при попытке получить значение, одной из записей в списке данных или это пользовательское значение? Если это значение отсутствует в списке, то именно так ведет себя поле со списком — см. telerik.com/forums /…