2016-10-17 2 views
0

검도 2016.3.914.440 버전을 사용 중이며 콤보 상자에 질문이 있습니다. 내 데이터 소스가 단일 값만 반환하는 경우 사용자가 값을 입력 할 필요가 없도록 ComboBox에 어떻게 할당 할 수 있습니까? .SelectIndex (0) 시도했지만 모든 상황에서 작동하므로 .DataBound에서 레코드 수를 확인하고 if = 1이면 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") 
      ) 

)

하지만

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

    alert('FA Count: ' + count) 
} 

그래서 데이터 소스 레코드의 텍스트와 가치를 찾아 낼 방법 onFADataBound 이벤트를 완료하는 방법을 알고하고 DataTextField에 그 할당하지 않습니다 및 DataValueField.

답변

1

select 방법을 통해 첫 번째 항목을 선택할 수 있습니다.

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

당신이 optionLabel (자리)이있는 경우 선택한 항목의 인덱스 1 될 것입니다 점에 유의하고, 그렇지 않으면 0.

+0

dimodi, 코드를 사용하여 주셔서 감사합니다.하지만 콤보 박스에서 아무런 차이가 없으므로 자리 표시자는 여전히 가치가 있습니다. –

+0

나는 e.sender.select를 (0)으로 변경해야했다. –

관련 문제