Как установить выбранное значение раскрывающегося списка кендо из контроллера на основе локали? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть Kendo.DropDownList, который будет отображать культуры.

При первой загрузке DropDown я хочу установить выбранное по умолчанию значение для текущей культуры.

Это раскрывающийся список:

@(Html.Kendo().DropDownList()      
        .Name("culture")
        .DataValueField("Value")
        .DataTextField("DisplayText")
        .DataSource(dataSource =>
        {
            dataSource.Read(read =>
            {

                read.Action("PopulateCultures", "CultureSelector");

            });
        })
        .Events(events =>
        {
            events.Select("onCultureChange");
        })
        .SelectedIndex(0)
) 

Вот где я его заполняю:

public ActionResult PopulateCultures()
{
    CultureModel cm = new CultureModel();

    string uCulture = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString();
    List<Culture> cultures = null;
    cultures = cm.PopulateCulture();
    if (Session["SiteUICulture"] != null) uCulture = Session["SiteUICulture"].ToString();
    try
    {
       //Here I need to set default/selected value to  a culture 
       cultures = cm.PopulateCulture();
    }
    catch (Exception e)
    {

    }
    return Json(cultures, JsonRequestBehavior.AllowGet);
}

Модель:

публичный класс CultureModel { открытая строка CurrentName {get; задавать; }

public List<Culture> AvailableCultures { get; set; }
public List<Culture> PopulateCulture()
{
    ClientServer iClient = new ClientServer();
    AvailableCultures = iClient.GetCultures(applicationName).ToList();

    return AvailableCultures;
}

}

Как я могу это сделать?

1 Ответ

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

Попробуйте выполнить следующие действия: -

  1. Модель, привязанная к вашему представлению, должна иметь свойство для выбранного значения культуры. В качестве альтернативы вы можете использовать ViewBag, если вы не хотите добавлять свойство в вашу модель.
  2. Действие контроллера, соответствующее представлению, должно присвоить этому значению это свойство.
  3. В представлении установите значение этой модели в раскрывающемся списке

Например: Доступные культуры, связанные с вашим раскрывающимся списком: - [{Id = 1, Name = English-US}, {Id = 2, Name = English-UK}]

Если имя добавленного вами свойства - SelectedCulture Ваш контроллер установит для него доступное значение, например SelectedCulture = 1

Ваше мнение установит значение в раскрывающемся списке

@(Html.Kendo().DropDownList()      
        .Name("culture")
        .DataValueField("Value")
        .DataTextField("DisplayText")
        .DataSource(dataSource =>
        {
            dataSource.Read(read =>
            {

                read.Action("PopulateCultures", "CultureSelector");

            });
        })
        .Events(events =>
        {
            events.Select("onCultureChange");
        })
        .Value(Model.SelectedCulture)
);
...