2013-09-25 30 views

Trả lời

1

của nó làm việc với mã avilable trong http://jsbin.com/egoneWe/3/edit

+0

Chỉ cần thay thế số 0 bằng bất kỳ chuỗi nào bạn thích bằng cách sử dụng hàm mẫu. Cảm ơn bạn JPN, đây là một bài viết rất hữu ích cho tôi. – ADH

0

Đặt giá trị trường làm số. Sau đó, nếu được yêu cầu, hãy thêm chuỗi tại thời điểm hiển thị.

Vui lòng tham khảo này để được giúp đỡ: sorting numbers (dollar amt and percentage) not working

+0

aaron - Làm cách nào để thêm chuỗi tại thời điểm hiển thị? Bạn có thể vui lòng xây dựng? – JPN

0

Theo như tôi biết, có không phải là một cách để tạo ra loại chức năng của riêng bạn của bạn cho một lĩnh vực. Tôi đã tìm thấy http://sympletech.com/how-to-enable-case-insensitive-sorting-on-kendo-ui-grid/ nơi một người nào đó đã triển khai một cái gì đó giống như những gì bạn đang yêu cầu (anh ấy chỉ đang phân biệt chữ hoa chữ thường).

Tôi đã phải làm điều này một lần (may mắn trên lưới không thể chỉnh sửa, chỉ hiển thị dữ liệu) và tôi chỉ cần loại bỏ lưới bằng cách sử dụng mẫu. Bằng cách xem xét dữ liệu trước khi dữ liệu được tạo thành, hãy thêm thuộc tính khác vào dữ liệu đại diện cho dữ liệu sắp xếp đúng và gắn lưới vào cột đó thay vì cột ban đầu, nhưng sử dụng mẫu trả về giá trị dữ liệu ban đầu.

Xem jsbin http://jsbin.com/ETaZOSu/1/edit

+0

Từ jsbin của bạn, tôi không thể hiểu từ nơi bạn đang gọi valueTemplate (e) – JPN

+0

Trong bộ sưu tập cột trên lưới. cột: [ {trường: "tên", tiêu đề: "Tên"}, {trường: "sắp xếp", tiêu đề: "Giá trị", mẫu: valueTemplate} ] –

6

Bạn có thể sắp xếp chúng bằng cách sử dụng tùy chỉnh chức năng so sánh. Dưới đây là một số mẫu mã mà sẽ đặt mục có 'N/A' trên đầu trang:

$("#grid").kendoGrid({ 
    dataSource: [ 
    { price: 1 }, 
    { price: "N/A" }, 
    { price: 20 }, 
    { price: 2 } 
    ], 
    sortable: true, 
    columns: [ 
    { 
     field: "price", 
     sortable: { 
     compare: function(a, b) { 
      var x = a.price; 
      var y = b.price; 

      if (x == 'N/A') { 
      x = 0; 
      } 

      if (y == 'N/A') { 
      y = 0; 
      } 

      return x - y; 
     } 
     } 
    } 
    ] 
}); 

Đây là một bản demo trực tiếp: http://jsbin.com/urUXOCa/1/edit

+0

Bản trình diễn này hoạt động tốt và tôi đã chỉnh sửa và thêm vài giá trị hơn và nó hoạt động hoàn hảo. Nhưng cùng một logic không làm việc cho tôi. Tôi nghĩ rằng lý do có thể là tôi không sử dụng jQuery và tôi không có Angular-Kendo. Bất kỳ ý tưởng làm thế nào để làm cho sắp xếp này: {so sánh: ....}} làm việc với angular-kendo – JPN

+0

Trong ví dụ, làm thế nào để chúng ta có được cột a.price động. Atleast cách lấy trường giá trị vào trường var x = a. $ (Như thế). Có thể là – JPN

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