Tôi thấy rằng trong jqGrid plugin cho JQuery tôi có thể thêm hàng động, nhưng tôi có thể làm tương tự với các cột không? Nếu có một bảng đơn giản, tôi muốn làm điều này bằng tay, nhưng jqGrid lưu trữ thông tin bảng trong rất nhiều div.jqGrid thêm cột mới
Trả lời
Không thể thêm cột vào jqGrid động. Bạn phải tạo lại toàn bộ lưới với colModel
có thêm một cột nữa. Nếu bạn sử dụng riêng biệt colNames
, thì kích thước của mảng cũng phải được tăng lên. Bạn có thể sử dụng GridDestroy ví dụ để hủy lưới hiện có. Việc sử dụng jQuery.Remove
hoặc jQuery.Empty
thay thế cũng có thể.
CẬP NHẬT: Dường như với tôi rằng GridUnload là tốt hơn cho mục đích của bạn. Tôi đã tạo small demo minh họa cách người ta có thể tạo lại một mạng lưới. Để có thể sử dụng GridUnload hoặc GridDestroy bạn phải xác minh rằng bạn bao gồm grid.custom.js trong dự án của mình (nếu bạn sử dụng phiên bản dành cho nhà phát triển của jqGrid) hoặc bạn đã chọn "Tùy chỉnh" "Phương thức cộng" trên trang jqGrid download.
CẬP NHẬT 2: Người ta có thể sử dụng phương thức addColumn
có thể tải xuống từ here (xem jQuery.jqGrid.addColumn.js
). Phương pháp vẫn đang trong giai đoạn beta. Người ta có thể tìm thấy một số bản demo trong đó cho thấy làm thế nào để sử dụng phương pháp here (xem addColumnX.htm
ví dụ).
Cảm ơn, nhưng tôi không thể tìm cách sử dụng GridDestroy. Bạn có thể giúp tôi với một ví dụ nhỏ không? 'jQuery (" # list ") .jqGrid ('GridDestroy');' nói rằng hàm không xác định (GridDestroy) – Ockonal
@Ockonal: Tôi đã cập nhật câu trả lời của mình và bao gồm một bản trình diễn nhỏ. – Oleg
@Oleg, Cảm ơn bạn rất nhiều. Một lần nữa, bạn đã tiết kiệm thời gian của tôi trên jqgrid. +1. – vissu
chỉ cần sử dụng
$("#gridid").jqGrid('GridUnload');
nó sẽ dỡ bỏ lưới hoàn toàn và sẽ sẵn sàng để tải lại với các cột và dữ liệu mới.
Trong phiên bản mới hơn, tính năng này không hoạt động nữa. Sử dụng điều này để dỡ bỏ jqGrid: $ .jgrid.gridUnload ('# list'); – tudor
Bạn có thể dễ dàng thiết lập các mô hình cột mới và tải lại lưới:
var newColModel = $("#myGrid").jqGrid("getGridParam", "colModel").concat({ /* new column attributes */ });
$("#myGrid").jqGrid("setGridParam", {colModel: newColModel}).trigger("reloadGrid");
rownumbers: đúng, và rownumWidth: 25 (mặc định)
Và nơi lưới của bạn sẽ mất dữ liệu cho mới này cột? – griZZZly8
@ grizzzly8 nó phải trống (các trường dữ liệu có thể chỉnh sửa). – Ockonal