Как показать выбранный элемент в элементе управления Syncfusion DropDownList

Я работаю над приложением ASP.NET MVC с использованием элементов управления Syncfusion. На мой взгляд, у меня есть раскрывающийся список. Модель имеет свойство «Категории», которое представляет собой список типа «Категория».

public class Category
{
    public int XKategorieId { get; set; }
    public int? Id { get; set; }
    public string Hinweis { get; set; }
    public string Kategorie { get; set; }
}

Модель представления также имеет свойство IdFromCategory. Модель такая:

public class ReportModel
{
    public int? IdFromCategory { get; set; }
    public List<Category> Categories { get; set; }
}

Я показываю все категории в раскрывающемся списке, устанавливая «DataSource» в «DropDownList». Теперь моя проблема в том, что я хочу показать элемент, выбранный в «DropDownList», когда представление загружается, и этот выбранный элемент будет тем, у которого «Id» равен «IdFromCategory».

@Html.EJS().DropDownList("KundenBetreuung").DataSource(Model.Categories).Fields(new Syncfusion.EJ2.DropDowns.DropDownListFieldSettings { Text = "Kategorie", Value = "Id" }).Value(Model.IdFromCategory.ToString()).Width("100%").Render();

Это мой код, я не могу установить выбранный элемент в "DropDownList"


person Waleed Naveed    schedule 10.05.2019    source источник
comment
Это не то, что я ищу @JohnB. В вашей ссылке говорится, как получить выбранное значение, но я должен установить выбранное значение на основе идентификатора при загрузке экрана.   -  person Waleed Naveed    schedule 10.05.2019


Ответы (1)


В коде Razor вы заполнили свойство значения с помощью Model.IdFromCategory.ToString () (строка), где объявленные свойства IdFromCategory и Id оба целые числа. Этот несоответствующий тип является причиной проблемы с вашей стороны, и значение не устанавливается. Чтобы успешно установить значение, убедитесь, что указанное значение доступно в источнике данных и его тип также совпадает.

Предлагаем изменить код следующим образом

@Html.EJS().DropDownList("KundenBetreuung").DataSource(Model.Categories).Fields(new Syncfusion.EJ2.DropDowns.DropDownListFieldSettings { Text = "Kategorie", Value = "Id" }).Value(Model.IdFromCategory).Width("100%").Render();

Дополнительную информацию можно найти в следующем примере. Пример

person Prince Oliver    schedule 14.05.2019