2015-05-24 17 views
11

Tôi cần triển khai lưới có các mục có thể chỉnh sửa. Một trong các trường thực thể là danh sách các chuỗi. Ví dụ: đó là danh sách đơn đặt hàng và mỗi đơn đặt hàng có thể có nhiều số theo dõi. Vì vậy, tôi cần nó để thực hiện một widget sẽ hỗ trợ hiển thị danh sách các thực thể, khả năng thêm và xóa các mục. Và (điều quan trọng nhất) nó phải hoạt động trong lưới Kendo.Lưới Kendo với danh sách có thể chỉnh sửa nội tuyến

Vì vậy, tôi đã xây dựng một widget mẫu ...

(function (jQuery) { 

var ui = kendo.ui; 
var Widget = ui.Widget; 

var TrackingNumbersList = Widget.extend({ 
    addEntryToList: function (event, value) { 
     if (value == undefined) { 
      var value = this.valueInput.val(); 
      if (value != null && value != "") { 
       this.addEntryToList(event, value); 
      } 
     } else { 
      this.domElement.find("div#valuesContainer").append($j("<div valueContainer></div>").html(value)); 
      this.valueInput.val(''); 
     } 
    }, 
    clear: function() { 
     this.domElement.find("div[valueContainer]").remove(); 
    }, 
    renderInterface: function() { 
     var that = this; 

     this.domElement.append("<div id='valuesContainer'></div>"); 
     this.valueInput = $j("<input id='txtValue' type='text' />"); 

     this.domElement.append(
     $j("<div></div>").append(this.valueInput) 
     .append($j("<input type='button' value='Add' />").click($j.proxy(that.addEntryToList, that))) 
     .append($j("<input type='button' value='Delete all' />").click($j.proxy(that.clear, that))) 
     ); 
    }, 
    init: function (element, options) { 
     this.domElement = $j(element); 
     this.renderInterface(); 
     Widget.fn.init.call(this, element, options); 
     this.element = element; 
    }, 

    options: { name: "TrackingNumbersList" }, 
    value: function() { 
     var result = []; 
     this.domElement.find("div[valueContainer]").each(function (index, el) { 
      result.push($j(el).html()); 
     }); 
     return result; 
    }, 
    value: function (val) { 
     this.clear(); 
     var that = this; 
     $j(val).each(function (index, value) { 
      that.addEntryToList(null, value); 
     }); 
    } 
}); 
ui.plugin(TrackingNumbersList);})(jQuery); 

Và bây giờ tôi muốn hỏi nếu có ai có một ý tưởng làm thế nào để có được công cụ này làm việc trong Kendo Grid. Đánh giá cao bất kỳ trợ giúp nào.

Trả lời

1

Nếu tôi hiểu chính xác bạn, thì kendo multi select control sẽ thực hiện công việc. Tôi nghĩ rằng nó sẽ dễ dàng hơn để sử dụng trong lưới kendo

+0

Tôi đang cố gắng hiểu cách tạo tiện ích con hoạt động tốt bên trong Kendo Grid. Tôi thực sự muốn hiểu điều này. –

0

Thử EditorTemplate với lưới inline chỉnh sửa, Điều này có thể giải quyết vấn đề của bạn

+0

Đưa ra một số mã ví dụ để người dùng có thể hiểu rõ hơn – Golda

0

Bạn có thể sử dụng Editing-inline như thế này. Bạn có thể thêm, chỉnh sửa và xóa một bản ghi trong lưới kendo.

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