2015-05-13 63 views
1

我有一個DropDownList通過數據屬性初始化。我需要添加一個項目到列表中,但我使用的代碼在我推新選項後顯示爲'undefined'。Kendo DropDownList requestEnd push value undefined

下面是使用數據 - 屬性我的元素(正常工作):

<select id="#people_list" 
    name="person_id" 
    class="form-control" 
    data-role="dropdownlist" 
    data-source="datasource_people" 
    data-option-label="Select A Name" 
    data-auto-bind="true" 
    data-text-field="name" 
    data-value-Field="name" 
    data-ignore-case="true" 
    data-filter="startswith" 
    > 
    </select> 

這裏是我的數據源PARAMS(正常工作):

datasource_people = new kendo.data.DataSource({ 
     type: "json", 
     serverFiltering: true, 
     transport: { 
      read: { 
       dataType: 'json', 
       type: 'GET', 
       url: '/restful/people/' 
      } 
     }, 
     filter: { 
      field: "status", 
      operator: "eq", 
      value: 1 
     }, 
     schema: { 
      data: function(response) { 
       return response.data.people; 
      }, 
      model: { 
       id: "person_id", 
       fields: { 
        person_id: {type: "number"}, 
        name: { type: "string"} 
       } 
      }, 
      errors: "error", 
      total: function(response) { 
       return response.data.total; 
      } 
     } 
    }); 

後來(不工作 - 增加了新的項目爲「未定義」):

$("#people_list").kendoDropDownList({ 
    dataTextField: "text", 
    dataValueField: "value", 
    dataSource: { 
     datasource_people, 
     requestEnd: function (e) { 
      e.response.push({text: "John", value: "John"}); 
     } 
    } 
}); 
+0

這可能是dataTextField和dataValueField是不正確的? – Hector

回答

0

查看其他方法的一些文檔,這工作完美。

$("#people_list").getKendoDropDownList().dataSource.insert({ 
    person_id: "John", 
    name: "John" 
}) 

感謝

0

你應該定義數據源的請求結束事件這樣的,而不是把它INSI de DropDownList的起始代碼

var dataSource = new kendo.data.DataSource({ 
    transport: { 
    read: { 
     url: "http://demos.telerik.com/kendo-ui/service/products", 
     dataType: "jsonp" 
    } 
    }, 
    requestEnd: function(e) { 
    var response = e.response; 
    var type = e.type; 
    } 
});