2 回答

TA貢獻1853條經驗 獲得超6個贊
請附上總是你的問題有關的信息的版本的jqGrid的,您可以使用(或者你可以使用),和叉的jqGrid的(免費的jqGrid,商業Guriddo jqGrid的JS或舊的jqGrid版本<= 4.7)。
如果您使用免費的 jqGrid fork,那么您可以在相應的列中添加類似classes: "hidden-xs", labelClasses: "hidden-xs"或 的屬性classes: "hidden-xs hidden-sm", labelClasses: "hidden-xs hidden-sm"。見演示從舊的回答更多的細節。如果你不使用 Bootstrap CSS,你可以hidden-**手動添加類的定義:
@media (max-width: 767px) {
.hidden-xs {
display: none !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
display: none !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.hidden-md {
display: none !important;
}
}
@media (min-width: 1200px) {
.hidden-lg {
display: none !important;
}
}
如果您使用舊版本的 jqGrid 并且您確實無法升級到免費的 jqGrid 或 Guriddo 那么您可以嘗試使用
$(window).bind("resize", function () {
// your resize handler
}).triggerHandler("resize");
并調用hideCol或showCol隱藏/顯示調整大小的列。如果您需要遵循這種方式,我建議您緩存要調用的隱藏/可見列的列表,hideCol或者showCol僅在確實需要更改時才進行緩存。要檢測您可以使用的當前分辨率window.matchMedia(請參閱此處)或獲取網格的某個外部 div 的寬度(外部 div of <table id="list2"></table>)。
更新:我創建了演示https://jsfiddle.net/OlegKi/n6g78two/,它使用 jqGrid 4.6 并演示了如何使用window.matchMedia在調整網格大小時隱藏/顯示一些列。"ComboDuration"如果視口的寬度為 767 像素或更小,演示將隱藏最后一列。它使用以下代碼:
function hideOrShowColumns (e) {
if (e.matches) {
// we have view ports of 767 pixels wide or less
$grid.jqGrid("hideCol", "ComboDuration");
} else {
$grid.jqGrid("showCol", "ComboDuration");
}
}
var mql = window.matchMedia('(max-width: 767px)');
hideOrShowColumns(mql);
mql.addListener(function (e) {
hideOrShowColumns(e);
});
$(window).bind("resize", function () {
$grid.jqGrid("setGridWidth", $grid.closest(".my-container").width());
}).triggerHandler("resize");

TA貢獻1871條經驗 獲得超13個贊
您可以使用以下方法:showCol 和 hideCol 根據條件隱藏/顯示列。請注意,這些方法接受數組作為參數以一次顯示和隱藏更多列。文檔可以在這里找到。
舉個例子,你可以這樣做
var $grid = $("#ProjectSearchGrid"),
$grid.jqGrid("hideCol", ["Project_Name2", "Project_Name3"]); // hide these cols before resizing
newWidth = $grid.closest(".ui-jqgrid").parent().width();
$grid.jqGrid("setGridWidth", newWidth, true);
除此之外,如果您使用 Guriddo jqGrid,您可以使用函數isMobile在移動設備中加載網格時隱藏一些列。
通過示例為列 Project_name2 執行此操作,您可以執行此操作
colModel: [
...
{ name: 'Project_Name2', index: 'Project_Name2', width: 140, hidden: $.jgrid.isMobile() },
添加回答
舉報