2013-10-23 39 views
0

我试图使用ajax调用将数据绑定到Kendo下拉列表。调用成功获取数据,但是kendo下拉菜单不显示任何数据。将数据加载到Kendo Dropdown

JSON对象

enter image description here

下拉:

<div class="editor-field"> 
       @Html.DropDownListFor(model => model.selectedWorkItem, new SelectList(Model.lstWorkItemType), "Select Below...", new { @style = "width:200px;height:20px" }) 
</div> 

Ajax调用:

<script type="text/javascript"> 
    $(document).ready(function() { 

     $("#selectedProject").change(function() { 

      var valid = $("#selectedProject").val(); 

      if (valid != "Select Below...") { 

       var procemessage = "<option value='0'> Please wait...</option>"; 
       $("#selectedWorkItem").html(procemessage).show(); 
       var murl = "/TFS/TFSProjectDetails/"; 

       $.ajax({ 
        url: murl, 
        data: { pName: valid }, 
        cache: false, 
        type: "POST", 
        success: function (data) { 

         if (JSON.stringify(data) != "[]") { 
          var ddl = $('#selectedWorkItem').data("kendoDropDownList"); 
          for (var x = 0; x < data.length; x++) { 

           ddl.setDataSource(data[x].Text); 
          } 

          ddl.refresh(); 
         } 

        }, 
        error: function (reponse) { 
         alert("error : " + reponse); 
        } 
       }); 
      } 
     }); 

    }); 
</script> 

回答

1

您需要指定值和文本字段剑道下拉首先显示,

$("#selectedWorkItem").kendoDropDownList({ 
     dataTextField: "Text", 
     dataValueField: "Value", 
    }); 

,然后改变yoour成功方法是这样来设置的数据源,(I假设data是JSON数组)

success: function (data) {   
     if (JSON.stringify(data) != "[]") { 
       var ddl = $('#selectedWorkItem').data("kendoDropDownList"); 
       ddl.setDataSource(data); 
     } 
},