2013-08-18 55 views
11

Handsontable cung cấp một số móc tốt đẹp cho khi một tế bào được chọn nhưng tôi dường như không thể tìm ra cách để có được nó cho phép tôi buộc một tế bào vào chế độ chỉnh sửa khi nó đã được chọn.Khi sử dụng Handsontable làm thế nào để buộc một ô được chọn vào chế độ chỉnh sửa?

tôi có thể phát hiện ra sự lựa chọn tế bào như thế này:

Handsontable.PluginHooks.add('afterSelection', function(row, column) { 
    var current_td = this.getCell(row, column); 
}); 

Và từ đó tôi thậm chí có thể có được các yếu tố tế bào đã được chọn. Nhưng từ đó tôi dường như không thể kích hoạt các tế bào vào chế độ chỉnh sửa (nơi nó có một lĩnh vực textarea tích cực được lựa chọn bên trong của nó). Điều này thường được kích hoạt bởi một nhấp đúp chuột. Làm rõ ràng dường như không hoạt động:

Handsontable.PluginHooks.add('afterSelection', function(row, column) { 
    var current_td = this.getCell(row, column); 

    $(current_td).dblclick(); 
}); 

Bất cứ ai khác từng làm điều này hoặc có suy nghĩ về cách tôi có thể làm cho nó hoạt động?

Trả lời

6

Và tôi tin rằng tôi đã trả lời câu hỏi của riêng tôi:

Handsontable.PluginHooks.add('afterSelectionEnd', function() { 
     f2_event = $.Event('keydown', { keyCode: 113 }); 
     this.$table.trigger(f2_event); 
}); 

Đó dường như làm các trick.

+0

Cảm ơn cho điều này! Tôi đã phải đặt các kích hoạt f2 bên trong một setTimeout để làm cho công việc này bởi vì bắn nó ngay lập tức dường như gây ra một lỗi null bên trong handsontable. bắn nó sau khi một sự chậm trễ đặt nó ở phần cuối của chuỗi sự kiện và dường như làm việc – Jason

8

Đối với bất kỳ ai xen vào câu hỏi này, bây giờ có một cách lập trình tốt hơn để đạt được kết quả tương tự.

this.selectCell(row, col); 
this.getActiveEditor().beginEditing(); 

này sẽ chọn các tế bào (row, col) và đi vào chế độ chỉnh sửa (ví dụ như nhấn đúp chuột hoặc nhấn F2/Enter).

0

Edit Mode trên nhấp chuột:

afterSelectionEnd: function (r, c, r2, c2) { 
    if (r == r2 && c == c2) { 
    getActiveEditor().beginEditing(); 
    getActiveEditor().enableFullEditMode(); 
    } 
} 

Khi bạn thêm enableFullEditMode(); di chuyển dấu nháy trong ô trong khi nhấn nút trái hoặc phải thay vì nhảy tới ô khác.

dụ Anaother: chỉ hàng đầu tiên:

afterSelectionEnd: function (r, c, r2, c2) { 
    if (r == r2 && c == c2) { 
    if (r == 0 && r2 == 0) { 
     getActiveEditor().beginEditing(); 
     getActiveEditor().enableFullEditMode(); 
    } 
    } 
} 
Các vấn đề liên quan