2013-08-16 29 views
12

Chúng tôi muốn sử dụng lưới giao diện người dùng ng góc, nhưng dường như không thể tìm thấy một tùy chọn để nói cho khung nhìn trong lưới không được đặt tràn để tự động và không cuộn.Turnoff Scrolling trong Angular UI ng-grid?

Điều chúng tôi muốn làm là chiều cao bảng/lưới là động dựa trên kích thước của số hàng trong lưới của chúng tôi. Chúng tôi có số lượng hàng cố định tối đa, do đó, có rất ít mối quan tâm với việc có quá nhiều hàng trong DOM.

Bất kỳ đề xuất nào về nơi cần đi?

Trả lời

8

Gần đây tôi đã chạy vào vấn đề tương tự và tìm thấy một giải pháp tại https://groups.google.com/forum/#!topic/angular/KiBXP3eKCDY

Bạn muốn ng-grid để khởi tạo sau khi bạn có dữ liệu.

Các giải pháp sau đây đòi hỏi phải sử dụng góc-ui:

<div ui-if="dataForGrid.length>0" ng-grid="gridOptions" ng-style="getTableStyle()" /> 

$scope.getTableStyle= function() { 
    var rowHeight=30; 
    var headerHeight=45; 
    return { 
     height: ($scope.dataForGrid.length * rowHeight + headerHeight) + "px" 
    }; 
}; 
+1

Tôi đã thử nó, tôi đã viết: ng-style = "height: {{formData.watchCountData.length * 30}} px"> nhưng nó không hoạt động: ( – Dejell

5

vâng đó là một plugin trong đó cung cấp cơ sở như vậy nó ng-grid-flexible-height.js

bạn sẽ nhìn thấy plunker cho cách nó sử dụng

+0

Vinod - Cảm ơn bạn, nhưng plunker bạn không đề cập đến những gì tôi đã yêu cầu. Tôi muốn lưới điều chỉnh chiều cao của nó dựa trên số hàng. Cuối cùng tôi không muốn bất kỳ thanh cuộn nào trong lưới. Tôi muốn sử dụng toàn bộ thanh cuộn tài liệu để thay thế. – RullDawg

+0

Trừ khi tôi hiểu sai các yêu cầu của bạn, bạn không muốn thanh cuộn trong lưới nhưng kẻ cướp cũng không có thanh cuộn trong lưới và theo số chiều cao của hàng được điều chỉnh –

+1

Tôi đã thêm nhiều hàng vào một ngã ba plunker của bạn [Cập nhật Plunker] (http://plnkr.co/edit/ghrGd1X9XO8wb6E8YUs7?p=preview). Những gì tôi thấy là một bảng với chiều cao khoảng 10 hàng nhưng có hơn 50 trong lưới. Tôi thấy một thanh cuộn trong lưới. – RullDawg

6

Trong CSS của bạn, bạn có thể thử cách ghi đè các height của div chứa hàng, vì vậy các hàng không tràn container:

.ngViewport { 
    height: auto !important; 
} 

Bạn cũng có thể điền vào khoảng trắng mà lưới ng để lại cho thanh cuộn với màu nền của hàng (mặc dù không may dữ liệu cuối cùng sẽ không mở rộng để lấp đầy khoảng trống):

.ngCanvas { 
    width: 100% !important; 
} 
.ngRow { 
    width: 100% !important; 
} 

Tùy thuộc vào bố cục bảng, bạn có thể cần phải thay đổi một số kiểu khác, nhưng đây là những kiểu chính. Cũng cẩn thận không đặt chiều cao cho toàn bộ ngGrid.

+0

Cách tiếp cận đó chắc chắn hoạt động ... nhưng nó trông không đúng vì các hàng không mở rộng toàn bộ chiều rộng thành cột scrollbar không còn nhìn thấy được nữa – CalvinDale

+0

Vâng, tôi đã không nhận thấy điều đó trước đây. :(Tôi đã cập nhật câu trả lời của tôi nhưng vẫn còn không gian chết ở cuối, nơi thanh cuộn sẽ có được - Tôi đã không tìm ra cách để làm cho tế bào cuối cùng phù hợp với chiều rộng còn lại –

+0

Những điều này dường như làm việc cho tôi.Loại bỏ không gian trống, nơi thanh cuộn được sử dụng là tốt, chỉ có một số funkiness với các tế bào biên giới trên cột cuối cùng, nhưng tôi có thể sống với điều đó - là tốt hơn so với trước đây. –

10

Thêm này để CSS của bạn sẽ khắc phục vấn đề của bạn:

.ngViewport{ 
    height:auto !important; 
} 
.ngCanvas, .ngViewport, .ngRow, .ngFooterPanel, .ngTopPanel { 
    width: 100% !important; 
} 
.ngRow { 
    border-bottom:none !important; 
} 
+0

Tôi sẽ để '.ngViewport' ra khỏi danh sách thứ hai và thay thế' .ngTopPanel' bằng '.ngHeaderContainer'. 'ngViewport' được cho là có kích thước từ' ngCanvas' giống như 'ngTopPanel' được cho là sẽ làm việc với' ngHeaderContainer'. – jwg

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