Установить значение Kendo DDL - PullRequest
0 голосов
/ 05 июля 2018

Я хочу обновить MVC Kendo DropDownList с помощью Ajax. Дисплей работает, когда я вызываю функцию Ajax, я вижу значение, выбранное в DDL. Но когда я отправляю свою страницу, значение DDL равно нулю. Если я выбираю значение вручную, оно работает.

Мой взгляд выглядит так:

@using (Html.BeginForm())
{
 @Html.AntiForgeryToken()
 <div class="col-md-10">
  @(Html.Kendo().DropDownListFor(m => m.typeID)
  .Name("typeID")
  .DataTextField("name")
  .DataValueField("ID")
  .OptionLabel(" ")
  .Value(Model.typeID.ToString())
  .DataSource(d => d.Read("_ListOfTypes", "User"))
  )
</div>
}

Мой скрипт выглядит так:

function searchUser(_e)
{
 $.ajax({
 url: "../../Account/_getUserInfo?_name=" + $("#username").val(),
    type: 'POST',
    contentType: 'application/json',
    success: function (_data) {
        $("#name").val(_data.name).change();
        $("#typeID").data('kendoDropDownList').text(_data.type);
    }
  });
}

Если я фиксирую свою страницу, typeID будет нулевым В этот момент мне нужно щелкнуть DDL, выбрать выбранное значение и зафиксировать, чтобы оно заработало.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вы пытаетесь установить Kendo Dropdown со свойством text, которое просто заменяет видимый текст и не заменяет значение.

Удалите $("#typeID").data('kendoDropDownList').text(_data.type); и попробуйте следующий код.

var dropdownlist = $("#typeID").data("kendoDropDownList");

dropdownlist.select(function(dataItem) {
    return dataItem.value === _data.type; 
});

// Or Try dropdownlist.select(_data.type);

Я не уверен, что внутри _data, поэтому я предположил, что _data.type должен содержать Id типа, который вы хотите выбрать.

Также, пожалуйста, проверьте различные способы установки значения Kendo Dropdown.

https://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist/methods/select

0 голосов
/ 05 июля 2018

Попробуйте указать значения для своего поля _data, а затем используйте их в Ajax. Например _data: stringify (_data), ...

...