2013-02-28 5 views
3

Вот моя проблема ...Kendo Dropdownlist не обновляет источник данных Kendo Grid на первой записи?

Я хотел бы иметь DropDownList связанный с моей сетке, как, например:


{ 
    field: "ContactTypeId", 
    hidden: true 
}, 
{ 
    field: "ContactTypeName", 
    title: "Type", 
    editor: ContactTypeAddressCombo 
} 

function ContactTypeAddressCombo(container, options) { 
       $('<input placeholder="A" data-bind="value:ContactTypeId"/>') 
       .appendTo(container) 
       .kendoDropDownList({ 
        autoBind: false, 
        dataTextField: "Name", 
        dataValueField: "ContactTypeId", 
        dataSource: { 
         type: "json", 
         serverFiltering: true, 
         transport: { 
          read: { 
           contentType: "application/json; charset=utf-8", 
           type: "POST", 
           url: "../Services/svcContact_Type.asmx/Search", 
           dataType: "json", 
           cache: false 
          }, 
          parameterMap: function(options, operation) { 
           options.AddressFlag = 1; 
           options.PhoneFlag = 1; 
           options.EmailFlag = 1; 
           return kendo.stringify(options); 
          } 
         }, 
         schema: { 
          data: "d" 
         } 
        }, 
        index: 0 
       }); 
      } 

Все работает отлично, КРОМЕ, когда я добавляю новую строку в сетку. Выпадающая нагрузка тонкая и имеет один элемент, но если я не перейду на другой элемент, сетка не распознает выбранный элемент (источник данных для сетки отправляет 0, даже если выбран элемент).

Одним из решений было бы, чтобы первый элемент всегда был «Выберите один» с значением 0, что заставит пользователя выбрать элемент. Но это далеко не идеально. Итак ... любые другие предложения? Есть ли в выпадающем списке какой-то заполнитель?

Благодаря

ответ

2

Этот вопрос обсуждается несколько раз в Интернете, и каждый пользователь описывает это по-другому. При создании нового элемента вы должны установить значение по умолчанию, чтобы среда MVVM могла правильно назначить выбранное значение DropDownList, или вы должны сделать это вручную с помощью события редактирования.

Другими словами - ваше свойство модели не должно быть нулевым - оно должно быть строкой или числом или оно не будет корректно обновляться при изменении значения с помощью DropDownList (весь элемент данных, используемый для DropDOwnList, будет назначен как стоимость).

Here подробная информация.