2014-05-04 51 views
0

有人可以提供一个例子,说明如何将以下两个属性绑定到我的BookType Kendo DropDown?我需要将dataTextField绑定到“Name”,并将dataValueField绑定到“BookTypeId”。KendoUI DropDownList如何绑定

的数据回来在下面的形式:

books: Object 
bookTypes: Array[4] 
    0: Object 
     ID: 1 
     Name: "Web Development" 
     BookTypeId: 1 
    1: Object 
     ID: 2 
     Name: "Networking" 
     BookTypeId: 2 
    2: Object 
     ID: 3 
     Name: "Game Development" 
     BookTypeId: 3 
    3: Object 
     ID: 4 
     Name: "OS Development" 
     BookTypeId: 4 

这是我做的电话:

$.ajax({ 
async: false, 
type: "GET", 
url: "GetBookTypes", 
contentType: "application/json", 
dataType: "json", 
success: function (res) { 
    if (typeof res !== "undefined" && typeof res.Errors !== "undefined") { 
     if (res.Errors.length > 0) { 
      // Display each error 
      for (var i = 0; i < res.Errors.length; i++) { 
       alert(res.Errors[i].ErrorMessage); 
      } 
     } 
    } else if (typeof res !== "undefined") { 

     $("#BookType").kendoDropDownList({ 
      dataTextField: "Name", 
      dataValueField: "BookTypeId", 
      dataSource: res, 
     }).data("kendoDropDownList"); 
    } 
}, 
complete: function() { 

}, 
error: function (res) { 
    alert(res.responseText); 
} 

});

回答

0

你需要数组数据本身绑定到数据源:

$("#BookType").kendoDropDownList({ dataTextField: "Name", dataValueField: "BookTypeId", dataSource: res.bookTypes, });

See fiddle

但它是比较容易,当您使用远程数据源绑定,如:

$("#BookType").kendoDropDownList({ dataTextField: "Name", dataValueField: "BookTypeId", dataSource: { transport: { read: { dataType: "jsonp", url: "GetBookTypes", } } } });

但是,您需要您的操作才能返回一组书直接类型。