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() },
添加回答
举报