滚动时固定列标题-jqgrid

滚动时固定列标题-jqgrid,jqgrid,Jqgrid,如果我的网格数据在当前窗口上滚动,是否可以在滚动数据时冻结列标题,以使列标题始终可见(如在excel中)。我使用高度:“自动”,因为我不想固定网格高度。提前感谢…似乎应该根据他们的文档和演示自动进行。尝试将高度设置为像素值,看看会发生什么。如果网格是页面上最上面的元素,则使用位置:固定会很有帮助。代码可能与以下内容有关 var$hdiv=$($grid[0].grid.hdiv), hOffset=$hdiv.offset(), $cdiv=$($grid[0].grid.cdiv), cOff

如果我的网格数据在当前窗口上滚动,是否可以在滚动数据时冻结列标题,以使列标题始终可见(如在excel中)。我使用高度:“自动”,因为我不想固定网格高度。提前感谢…

似乎应该根据他们的文档和演示自动进行。尝试将高度设置为像素值,看看会发生什么。

如果网格是页面上最上面的元素,则使用
位置:固定
会很有帮助。代码可能与以下内容有关

var$hdiv=$($grid[0].grid.hdiv),
hOffset=$hdiv.offset(),
$cdiv=$($grid[0].grid.cdiv),
cOffset=$cdiv.offset(),
$bdiv=$($grid[0].grid.bdiv);
//更改gbox位置
$bdiv.parent().parent().css({
职位:“相对”,
顶部:$bdiv.offset().top,
左:0});
//使标题和捕获固定
$hdiv.css({
位置:“固定”,
zIndex:1,
顶部:hOffset.top-cOffset.top,
左:霍夫塞特。左
});
$cdiv.css({
位置:“固定”,
zIndex:1,
排名:0,
左:cOffset.left,
宽度:$cdiv.width()
});

请参阅。

这是内置在jqgrid中的。但是,为了使用此功能,您需要调整网格本身的大小以适应窗口,然后在窗口调整大小时调整网格的大小。这将允许在网格本身中进行滚动,而不是在整个文档中。见下文:

$(window).resize(function () {
  resizeGrid();
});

$(window).load(function() {
  resizeGrid();
});

function resizeGrid() {
  var heightPadding = 200; // or whatever you want it to be
  var widthPadding = 40; // or whatever you want it to be
  $('#grid').setGridHeight($(window).height() - heightPadding);
  $('#grid').setGridWidth($(window).width() - widthPadding);
}
这是我的工作(没有网格css编辑)

网格初始化后必须使用此代码,并且必须使用此id调用网格以设置样式:

document.getElementById("gbox_" + gridID).style.width = "100%";
document.getElementById("gbox_" + gridID).style.height = "100%";

和列标题始终可见


希望这有帮助

Zero21xxx:感谢您的回复,我想它可以在固定高度下工作,但正如我提到的,我不想固定我的网格高度,因为网格高度可能会根据网格中填充的数据发生变化……如果希望将高度保持在两个值之间,您可以设置最小高度和最大高度。如果你不想设置任何高度,那么如果没有大量定制的jqGrid代码,实现这一目标的选项几乎是不可能的。很抱歉,我不确定我是否理解你的问题。jqGrid的默认行为已经如此:只有包含数据的主体才会滚动,但列标题保持可见。你能更准确地解释一下这个问题吗。一张图片也会有帮助。我已经添加了图片。基本上,我想有动态高度,但当我得到窗口滚动条,第三张图片显示,标题是不可见的,而滚动。是否可以修复列标题?如果网格位于页面的中心怎么办?我该如何处理呢???@SanthoshKumar:您可以定义外部div,在其中放置
,用于创建网格。如果使用
将外部div居中,则网格也将在页面上水平居中。
document.getElementById("gbox_" + gridID).style.width = "100%";
document.getElementById("gbox_" + gridID).style.height = "100%";
document.getElementById("gbox_" + gridID).style.top = "0px";
document.getElementById("gbox_" + gridID).style.left = "0px";
document.getElementById("gbox_" + gridID).style.bottom = "40px";
document.getElementById("gbox_" + gridID).style.right = "0px";
document.getElementById("gbox_" + gridID).style.position = "absolute";