2013-02-27 11 views
7

Desidero combinare due campi per la proprietà dataTextField del completamento automatico di Kendo.Come combinare due campi per dataTextField del completamento automatico dell'interfaccia utente Kendo?

Il mio datasouce ha un campo FirstName e un campo 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 
         } 
        } 
       } 
      } 
     } 

C'è un modo per configurare il completamento automatico per visualizzare FirstName + LastName?

Forse dovrei fare qualcosa con l'origine dati, e se questo è il caso, qualcuno può fornire un semplice esempio?

Grazie!

+0

FYI: solo "stringa", "numero", "booleano" e "data" sono valori validi per il campo "tipo". http://docs.kendoui.com/api/framework/model#model.define –

risposta

8

Si dovrebbe usare template:

ad esempio:

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

Questo modifica solo il modello per gli elementi dell'elenco a discesa, non modifica il valore della casella combinata quando viene selezionato un elemento. Come si fa a farlo? –

+0

Il modello serve solo per visualizzare i dati, non per vincolarli. Puoi provare qualcosa come [this] (http://jsfiddle.net/VGufY/39/). Utilizzo dell'evento dataBound per associare gli elementi alle loro righe. Si noti che si tratta di un approccio di riduzione delle prestazioni poiché l'intera griglia viene ridisegnata dopo ogni modifica apportata. –

7

Uso dei modelli è una soluzione valida. Tuttavia, se si desidera avere sempre un campo composito o calcolato accessibile sul modello, è possibile definire un valore parse function nella definizione dello schema.

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; 
    } 
} 

La funzione di analisi pre-processi la risposta del server prima che venga utilizzato, in modo da poter modificare i campi esistenti o allegare nuovi. È quindi possibile fare riferimento ai campi direttamente nei controlli che utilizzano il modello.

Problemi correlati