2013-02-27 3 views
7

Я хочу объединить два поля для свойства dataTextField автозаполнения Kendo.Как объединить два поля для dataTextField автозаполнения Kendo UI?

У моего datasouce есть поле FirstName и поле LastName.

schema: { 
      data: "d", 
      model: { 
       id: "PersonId", 
       fields: { 
        PersonId: { 
         type: "number", 
         editable: false // this field is not editable 
        }, 
        FirstName: { 
         type: "text", 
         validation: { // validation rules 
          required: true // the field is required 
         } 
        }, 
        LastName: { 
         type: "text", 
         validation: { // validation rules 
          required: true // the field is required 
         } 
        } 
       } 
      } 
     } 

Есть ли способ я могу настроить автозаполнение для отображения FirstName + LastName?

Возможно, мне нужно что-то сделать с источником данных, и если это так, может ли кто-нибудь предоставить простой пример?

Спасибо!

+0

FYI: только значения «строка», «число», «булево» и «дата» являются допустимыми значениями для поля «тип». http://docs.kendoui.com/api/framework/model#model.define –

ответ

8

Вы должны использовать template:

, например:

template:"The name is : #= FirstName # #=LastName #" 
+3

Это только изменяет шаблон для раскрывающихся списков, он не изменяет значение выпадающего списка при выборе элемента. Как ты это делаешь? –

+0

Шаблон предназначен для отображения данных, а не для их привязки. Вы можете попробовать что-то вроде [этого] (http://jsfiddle.net/VGufY/39/). Использование события dataBound для привязки элементов к их строкам. Обратите внимание, что это метод дренажа производительности, потому что вся сетка перерисовывается после каждого внесенного изменения. –

7

Использование шаблонов является правильным решением. Однако, если вы хотите всегда иметь составное или расчетное поле, доступное в вашей модели, вы можете определить parse function в определении схемы.

schema: { 
    data: "d", 
    model: { 
     id: "PersonId", 
     fields: { 
      PersonId: { 
       type: "number", 
       editable: false // this field is not editable 
      }, 
      FirstName: { 
       type: "string", 
       validation: { // validation rules 
        required: true // the field is required 
       } 
      }, 
      LastName: { 
       type: "string", 
       validation: { // validation rules 
        required: true // the field is required 
       } 
      }, 
      Name: { 
       type: "string" 
       // add any other requirements for your model here 
      } 
     } 
    }, 
    parse: function (response) { 
     var values = response.d, 
      n = values.length, 
      i = 0, 
      value; 
     for (; i < n; i++) { 
      value = values[i]; 
      value.Name = kendo.format("{0} {1}", 
       value.FirstName, 
       value.LastName); 
     } 

     return response; 
    } 
} 

Функция синтаксического анализа предварительно обрабатывает используется ответ сервера перед ним, так что вы можете изменить существующие поля или присоединить новые. Затем вы можете ссылаться на поле (поля) непосредственно в любом элементе управления, использующем модель.

Смежные вопросы