2016-10-17 51 views
0

我正在使用kendo的2016.3.914.440版本,並且在ComboBox上有一個問題。如果我的數據源只返回一個值,我怎樣才能將它分配給ComboBox,這樣用戶就不需要輸入數值了?我嘗試了.SelectIndex(0),但在所有情況下都能正常工作,所以我想在.DataBound中檢查記錄數,如果= 1,我想分配給ComboBox。 我的代碼如下。如何分配kendo組合框的值

@(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) –