2013-02-27 30 views
7

Tôi muốn kết hợp hai trường cho thuộc tính dataTextField của tính năng tự động hoàn thành Kendo.Làm cách nào để kết hợp hai trường cho dataTextField của giao diện người dùng Kendo tự động hoàn thành?

Nguồn dữ liệu của tôi có trường FirstName và trường 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ó cách nào tôi có thể định cấu hình tự động hoàn thành để hiển thị FirstName + LastName không?

Có lẽ tôi phải làm điều gì đó với nguồn dữ liệu thay thế, và nếu đúng như vậy, ai đó có thể cung cấp một ví dụ đơn giản?

Cảm ơn bạn!

+0

FYI: chỉ "chuỗi", "số", "boolean" và "ngày" là giá trị hợp lệ cho trường "loại". http://docs.kendoui.com/api/framework/model#model.define –

Trả lời

8

Bạn nên sử dụng template:

ví dụ:

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

Điều này chỉ sửa đổi mẫu cho các mục danh sách thả xuống, nó không thay đổi giá trị của combobox khi một mục được chọn. Làm thế nào để bạn làm điều đó? –

+0

Mẫu chỉ để hiển thị dữ liệu chứ không phải để ràng buộc nó. Bạn có thể thử một cái gì đó như [this] (http://jsfiddle.net/VGufY/39/). Sử dụng sự kiện dataBound để liên kết các mục với các hàng của chúng. Xin lưu ý đây là phương pháp thoát hiệu suất vì toàn bộ Lưới được vẽ lại sau mỗi lần thay đổi. –

7

Sử dụng mẫu là một giải pháp hợp lệ. Tuy nhiên, nếu bạn muốn luôn có trường tổng hợp hoặc được tính toán có thể truy cập trên mô hình của mình, bạn có thể xác định parse function trong định nghĩa lược đồ.

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

Chức năng phân tích cú pháp xử lý trước máy chủ trước khi sử dụng, vì vậy bạn có thể sửa đổi các trường hiện có hoặc đính kèm các trường mới. Sau đó, bạn có thể tham chiếu (các) trường trực tiếp trong bất kỳ điều khiển nào sử dụng Mô hình.

Các vấn đề liên quan