Tôi đang sử dụng jqGrid 4,0 (thông qua jquery Struts 2 plugin) và jQuery bố trí plugin. Câu trả lời trước không hiệu quả với tôi. Chỉ có chức năng resizeGrid
là một vấn đề. Chỉ cần thay thế hàm resizeGrid
ở trên bằng cách này. Điều này sẽ chỉ thay đổi kích thước một lưới - một trong đó có id là gridtable
.
function resizeGrid(pane, $Pane, paneState) {
jQuery("#gridtable").jqGrid('setGridWidth',paneState.innerWidth - 2, 'true');
};
#gridtable
là id của phần tử bảng bạn tạo cho jqGrid
<div id="grid_container">
<table id="gridtable" class="mygrid"></table>
<div id="grid_pgr"></div>
</div>
Ngoài ra, nếu bạn đang sử dụng struts2 plugin jquery, lưới điện được tự động tạo ra sử dụng <script>
khối trong <body>
(không trong các khối tập lệnh trong phạm vi <head>
). Vì vậy, nếu bạn gọi số layout()
và đặt triggerEventsOnLoad: true
trong <head>
, bạn sẽ gặp phải lỗi javascript. Để tránh điều này, bạn có thể thêm khối tập lệnh này vào đâu đó sau khi (các) lưới của bạn được khai báo.
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#gridtable").jqGrid('setGridWidth',$myLayout.state.center.innerWidth - 2, 'true');
});
</script>
Nếu bạn có nhiều hơn một lưới, bạn có thể truy cập chúng bằng một lớp học mà bạn đã xác định trên các yếu tố bảng (xem Đoạn mã HTML ở trên), và sau đó chạy các phương pháp resizeGrid
trên mỗi trong số họ.
Cảm ơn, điều này dẫn tôi đến câu trả lời tôi cần. – Horacio
Bạn được chào đón, vui mừng được giúp đỡ –
@JustinEthier làm cách nào để chúng tôi thực hiện điều này dưới dạng lưới chất lỏng như bảng khởi động twitter. ví dụ tại đây http://192.69.216.111/themes/preview/ace/tables.html –