Tôi đang thiết lập lựa chọn ngGrid của tôi từ JavaScript, gọi số gridOptions.selectItem()
. Tôi đã chọn multiSelect thành false, vì vậy chỉ có một hàng được chọn. Tôi muốn ngGrid tự động cuộn để hiển thị hàng mới được chọn, nhưng tôi không biết làm thế nào để làm điều này: bất cứ ai có thể giúp đỡ, xin vui lòng?Làm cách nào để cuộn một ngGrid để hiển thị lựa chọn hiện tại?
Về một chủ đề liên quan: tôi có thể tắt lựa chọn hàng bằng cách nhấp chuột không? Nếu vậy, làm thế nào?
Edited để thêm
Tôi cũng muốn vô hiệu hóa bàn phím điều hướng của hàng đã chọn, nếu có thể.
gì làm việc:
câu trả lời AardVark71 của làm việc. Tôi phát hiện ra rằng ngGrid định nghĩa một thuộc tính ngGrid
trên biến số gridOptions
chứa tham chiếu đến đối tượng lưới chính nó. Các chức năng cần thiết được tiếp xúc thông qua các thuộc tính của đối tượng này:
$scope.gridOptions.selectItem(itemNumber, true);
$scope.gridOptions.ngGrid.$viewport.scrollTop(Math.max(0, (itemNumber - 6))*$scope.gridOptions.ngGrid.config.rowHeight);
lưới của tôi được cố định ở độ cao 13 dòng, và logic của tôi cố gắng để làm cho hàng đã chọn xuất hiện ở giữa của lưới điện.
Tôi vẫn muốn tắt chuột & thay đổi bàn phím đối với lựa chọn, nếu có thể.
gì cũng làm việc:
Đây có lẽ là gần gũi hơn với những 'góc Way' và đạt được cùng một kết thúc:
// This $watch scrolls the ngGrid to show a newly-selected row as close to the middle row as possible
$scope.$watch('gridOptions.ngGrid.config.selectedItems', function (newValue, oldValue, scope) {
if (newValue != oldValue && newValue.length > 0) {
var rowIndex = scope.gridOptions.ngGrid.data.indexOf(newValue[0]);
scope.gridOptions.ngGrid.$viewport.scrollTop(Math.max(0, (rowIndex - 6))*scope.gridOptions.ngGrid.config.rowHeight);
}
}, true);
mặc dù có hiệu lực khi liên tiếp được chọn bằng cách nhấp vào nó có thể có một chút bối rối.
Bạn có thể hiển thị mã của những gì bạn đã có cho đến nay không? Có vẻ như bạn có thể sử dụng phương thức scrollTop. Xem thêm https://github.com/angular-ui/ng-grid/issues/183 và plunker sau đây từ @ bryan-watts http://run.plnkr.co/plunks/oyIlX9/ – AardVark71
OK Tôi có nó hoạt động, nhờ vào mẹo này! Có một thuộc tính 'ngGrid' không được tài liệu được thêm vào thuộc tính' gridOptions' chứa tham chiếu tới chính lưới thực tế. Các cuộc gọi chức năng để di chuyển các viewport là sau đó '$ scope.gridOptions.ngGrid. $ Viewport.scrollTop (rowNumber * $ scope.gridOptions.ngGrid.config.rowHeight)' AardVark71 - Vui lòng cập nhật này để trả lời & tôi sẽ ghi có bạn : cảm ơn nhiều! – Max
Rất vui khi nó làm việc cho bạn, tôi sẽ thuật lại nó như là một câu trả lời – AardVark71