2015-05-13 2 views
1

У меня есть DropDownList, инициализируемый атрибутами данных. Мне нужно добавить элемент в список, но код, который я использую, отображает значение как «undefined» после того, как я нажму новый параметр.Kendo DropDownList requestEnd значение push 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> 

Вот мои DataSource 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; 
      } 
     } 
    }); 

потом (не работает - добавляет новый элемент как «undefined»):

$("#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 код активации вашего 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; 
    } 
}); 
Смежные вопросы