2013-11-26 3 views
0

사용자가 드롭 다운 목록에 나타나지 않는 값을 입력 할 수 없도록 MVC 5 앱을 설정하려고합니다.콤보 상자 데이터 소스에 입력 한 텍스트 제한

다음 해결책을 찾았습니다 : JSFiddle Here,하지만이 문제를 면도기 구문으로 번역하는 데 어려움이 있습니다.

아래는 내가 지금까지 가지고있는 것입니다. 내가 알 수없는 것은 "데이터 소스"를 검사하는 방법입니다.

<div class="form-group"> 
     @Html.LabelFor(model => model.loadType, new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @(Html.Kendo().ComboBox() 
        .Name("loadType") 
        .Filter(FilterType.Contains) 
        .DataTextField("Text") 
        .DataValueField("Value") 
        .BindTo(Model.LoadTypes) 
        .Suggest(true) 
      ) 
      @Html.ValidationMessageFor(model => model.loadType) 
     </div> 
    </div> 

    <div class="form-group"> 
     @Html.LabelFor(model => model.loadDescrip, new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @(Html.Kendo().ComboBox() 
        .Name("loadDescrip") 
        .Filter(FilterType.Contains) 
        .DataTextField("DocCode") 
        .DataValueField("DocCode") 
        .DataSource(source => 
        { 
         source.Read(read => 
         { 
          read.Action("GetCascadeDocumentNumbers", "DockDoor") 
           .Data("filterLoadDescription"); 
         }) 
         .ServerFiltering(true); 
        }) 
        .Enable(false) 
        .AutoBind(false) 
        .CascadeFrom("loadType") 
        .Events(e => 
         { 
          e.Change("onChange"); 
         }) 
      ) 
      @Html.ValidationMessageFor(model => model.loadDescrip) 
     </div> 
    </div> 


    function onChange() { 
    var lT = $("#loadType").data("kendoComboBox").input.val(); 
    if (lT != "Generic") { 
     var lD = $("#loadDescrip").data("kendoComboBox").input.val(); 

     // Here I need to compare 'lD' to what is populated in the comboBox dropdown 
     var combobox = $("#loadDescrip").data("kendoComboBox"); 

     //this is for Testing purposes only 
     alert(lD +" " + lT); 
    } 
}; 

답변

1

당신은 위젯의 .dataSource 재산 떨어져있는 검도 위젯의 DataSource를 얻을 수 있습니다. 그래서 예를 들면 : 거기에서

var loadDescripDataSource = $("#loadDescrip").data("kendoComboBox").dataSource; 

당신이 데이터 소스에서 항목의 배열을 얻을 수있는 데이터 소스에 .view()를 호출 할 수 있습니다 다음, 그들에 루프는 당신이 필요로 찾을 수 있습니다.

관련 문제