2016-10-17 2 views
0

Я использую версию кендо 2016.3.914.440 и задаю вопрос о ComboBox. Если мой источник данных возвращает только одно значение, как я могу назначить это для ComboBox, чтобы пользователю не нужно вводить значение? Я попробовал .SelectIndex (0), но это работает во всех ситуациях, поэтому я подумал, что в .DataBound я бы проверил количество записей и if = 1, тогда я хотел назначить ComboBox. Код, который у меня есть, следующий.Как назначить kendo combobox значение

@(Html.Kendo().ComboBox() 
     .Name("FAList") 
     .Placeholder("Select Fiscal Agency...") 
     .DataTextField("Text") 
     .DataValueField("Value") 
     .HtmlAttributes(new { style = "width:50%;" }) 
     .Filter("startswith") 
     .AutoBind(true) 
     .MinLength(3) 
     .DataSource(source => 
     { 
      source.Read(read => 
      { 
       read.Action("GetUserAgencyList", "Entities"); 
      }) 
      .ServerFiltering(true); 
     }) 
      .Events(e => e 
      .Change("onFAChange") 
      .DataBound("onFADataBound") 
      ) 

)

Но я не знаю, как закончить onFADataBound событие

function onFADataBound(e) { 
    var dropdown = $("#FAList").data("kendoComboBox"); 
    var count = dropdown.dataSource.data().length 

    alert('FA Count: ' + count) 
} 

Так как я нашел бы текст и значение записи источника данных и присвоить, что в DataTextField и DataValueField.

ответ

1

Вы можете выбрать первый элемент с помощью метода select.

function onFADataBound(e) { 
    if (e.sender.dataSource.view().length == 1) { 
     e.sender.select(1); 
    } 
} 

Обратите внимание, что индекс выбранного элемента будет 1, если у вас есть optionLabel (заполнитель) и 0 иначе.

+0

dimodi, спасибо, но используя ваш код не имеет никакого значения в выпадающем списке, местозаполнитель по-прежнему является значением. –

+0

Мне пришлось изменить e.sender.select (0) –

Смежные вопросы