2010-06-22 45 views
32

Tôi đã phát triển giao diện AJAX với jQuery và jqGrid.jqGrid thanh cuộn ngang

Làm cách nào để xóa thanh cuộn ngang khỏi bảng jqGrid của tôi?

http://dskarataev.ru/jqgrid.png

Nếu tôi đặt autowidth: true, sau đó tôi nhận được chiều rộng của chiều rộng bảng = tổng của cột, nhưng tôi cần chiều rộng của bảng = chiều rộng của phần tử cha với id trả về bởi hàm getSelectedTabHref()

vì vậy tôi làm chức năng:

$(window).bind('resize', function() { 
    $('#tasks').setGridWidth($(getSelectedTabHref()).width()); 
    $('#tasks').setGridHeight($(window).height()-190); 
}).trigger('resize'); 

và đây là cách tôi tạo jqGrid bảng:

$('#tasks').jqGrid({ 
    datatype: 'local', 
    colNames:[labels['tasksNum'],labels['tasksAdded']+"/"+labels['tasksAccepted'],labels['tasksOperator'],labels['tasksClient'],labels['tasksManager'],labels['tasksDesc']], 
    colModel :[ 
    {name:'taskId', index:'taskId', width:1, align:'right'}, 
    {name:'taskAdded', index:'taskAdded', width:3}, 
    {name:'taskOperator', index:'taskOperator', width:4}, 
    {name:'taskClient', index:'taskClient', width:7}, 
    {name:'taskManager', index:'taskManager', width:4}, 
    {name:'taskDesc', index:'taskDesc', width:8}] 
}); 

Trả lời

1

setGridWidth chắc chắn sẽ định lại kích thước lưới của bạn thành chiều rộng mới nhất định, nhưng đảm bảo bạn sử dụng nó với autowidth = true. setGridWidth có thể có vấn đề với IE 7 hoặc hơn.

Một số giải pháp làm việc thảo luận ở đây (trong trường hợp nếu bạn vẫn chưa tìm ra giải pháp),

Resize jqGrid when browser is resized?

http://www.trirand.com/blog/?page_id=393/discussion/browser-resize-how-to-resize-jqgrid/

---- cũ ----

Có là một vài tùy chọn bạn có thể thử,

Từ http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

"autowidth" : true  

hoặc

"shrinkToFit": false 

Nếu không gửi mã jqGrid của bạn, chúng ta hãy phân tích.

+0

tôi đã cập nhật câu hỏi. Xem xét, xin vui lòng. – dskarataev

5

Có một số trường hợp mà jqGrid tính chiều rộng lưới không chính xác. Bạn có thể thử tăng thông số cellLayout (xem http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options). Điều này có thể cần thiết nếu bạn thay đổi một số CSS từ jqGrid.

Trong một số trường hợp khác, bạn có thể sửa chiều rộng theo chức năng fixGridWidth hoặc fixGridSize mà tôi đã mô tả trong Correctly calling setGridWidth on a jqGrid inside a jQueryUI Dialog. Đừng quên, rằng bạn nên sử dụng nó bên trong của loadComplete.

+0

Xin cảm ơn, tôi sẽ kiểm tra. – dskarataev

72

tôi đã điều chỉnh ui.grid.css vì tôi không cần thanh cuộn ngang. tôi đã làm điều này:

.ui-jqgrid .ui-jqgrid-bdiv { 
    position: relative; 
    margin: 0em; 
    padding:0; 
    /*overflow: auto;*/ 
    overflow-x:hidden; 
    overflow-y:auto; 
    text-align:left; 
} 

nhận xét là như thế nào, tôi chỉ sử dụng tràn-x để ẩn thanh cuộn ngang và bây giờ tất cả đều ổn với tôi.

+0

Hoạt động tuyệt vời cho tôi, cảm ơn! – Matthieu

+0

Tuyệt vời, thanx !!! –

+0

tại sao câu hỏi này không phải là câu hỏi đầu tiên? nó có 26 phiếu bầu và hoạt động hoàn hảo! cảm ơn bạn! – Paschalis

4

Đặt rõ ràng width trên lưới điện và sử dụng

autowidth: false, 
shrinkToFit: true 
+0

Giải pháp này không hoạt động trong mọi tình huống. Thay đổi css hiện các trick. – Matthieu

0

tôi sử dụng phương pháp jqGrid API setGridHeight. nó hoạt động tốt cho tôi trong IE 8.

var gr = jq('#grid'); 
gr.setGridHeight(350,true); 

tôi đặt các dòng này trong lệnh gọi hàm 'loadComplete'.

1

hơi muộn, nhưng có thể có ích cho một ai đó

Bạn phải thiết lập chiều cao của bảng chỉ về số lượng, không có 'px' ở cuối

0

Áp dụng AppearanceSettingsShrinkToFit="False"AutoWidth="true" để bạn jqGrid.

1

Ở đây chúng ta đi width : '1083', shrinkToFit:false,

Khi chúng tôi đặt trên chúng ta cần phải đảm bảo rằng ui.jqgird.css của chúng tôi được thiết lập như bên dưới

.ui-jqgrid .ui-jqgrid-bdiv { height: auto; margin: 0em; max-height: 250px; overflow-x: auto; overflow-y: auto; padding: 0px; position: relative; text-align: left; } 
0

của nó đơn giản, sử dụng trong jqGrid shrinkToFit: false

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