#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 /…