Kendo MVC DropdownTree не отображает выбранное значение - PullRequest
0 голосов
/ 28 мая 2019

У меня есть Kendo MVC DropdownTree на майской странице. Я успешно сохраняю выбранное значение из него в базу данных. Когда я прихожу, чтобы отредактировать данные, значение корректно возвращается из модели и устанавливается в DropdownTree, однако ни один элемент визуально не выбирается в раскрывающемся дереве.

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

@(Html.Kendo().DropDownTree()
                .Name("VocationID")
                .DataTextField("Name")
                .DataValueField("Id")
                .ValuePrimitive(true)
                .Placeholder("--Select Vocation--")                            
                .Value(Model.VocationID.ToString())
                .DataSource(dataSource => dataSource
                    .Read(read => read
                    .Action("GetVocationTree", "ApplicationForm"))
                )
                .HtmlAttributes(new { style = "width: 250px;", required = "required", validationMessage = "Vocation is required" })
             )
function TestValue() {
        var dropdowntree = $("#VocationID").data("kendoDropDownTree");
        alert(dropdowntree.value());
}

Приведенное выше предупреждение javascript правильно возвращает значение, но элемент, отображаемый в DropdownTree, не отображается. Я также попытался удалить атрибут ValuePrimitive, но ничего не работает.

Может ли кто-нибудь помочь определить, чего здесь не хватает?

1 Ответ

0 голосов
/ 31 мая 2019

Наконец-то нашел способ справиться с этим. Размещать, если это кому-нибудь когда-нибудь поможет.

Этот элемент управления ведет себя немного по-другому. Вы можете прочитать выбранный элемент как идентификатор, но для установки выбранного элемента нужно установить его текст вместо идентификатора.

Получение значения предмета:

            var dropdowntree = $("#VocationID").data("kendoDropDownTree");
            var VocationID = dropdowntree.value().id;


и установить значение по умолчанию:

            @(Html.Kendo().DropDownTree()
                            .Name("VocationID")
                            .DataTextField("Name")
                            .DataValueField("Id")
                            .Placeholder("--Select Vocation--")
                            .Value(Model.VocationName)

Обратите внимание на "VocationName" вместо ID.

...