gpt4 book ai didi

jquery - jqgrid固定列标题和固定页脚

转载 作者:行者123 更新时间:2023-12-01 01:37:18 25 4
gpt4 key购买 nike

我正在寻找修复 jqgrid 列标题和固定页脚。当 jqgrid 中还有其他项目和数据时,我正在考虑修复标题,以便用户始终知道他在看什么。

Here is the sample for what I am looking for

请注意,我在这里查看的是浏览器滚动条。jqgrid支持这个吗?

编辑

由于JQGrid毕竟是html表格,所以我尝试使用jQuery TH Float Plugin 。现在事实证明JqGrid是由三个表组成的一个用于页眉,一个用于数据,另一个用于页脚。所以看来我要么必须修改 thfloat 来适应这个问题,要么想出其他的东西......

最佳答案

这是一个很难解决的问题。

我让它工作了首先 css 覆盖默认值:overflow:hidden 为

.ui-jqgrid .ui-jqgrid-sdiv{overflow:visible;}
.ui-jqgrid .ui-jqgrid-hdiv{overflow:visible;}

在 javascript JQuery 上我实现了以下内容

function screenBottom() {
return $(window).scrollTop() + $(window).height();
}
$(window).scroll(function () {
var dataTableTop = dataTable.offset().top;
var dataTableHeight = dataTableTop + dataTable.outerHeight();
var windowTop = $(window).scrollTop();
var windowBottom = screenBottom();
//Scroll down
if (windowTop > dataTableTop - headerTable.height()
&& windowTop < (dataTableHeight - headerTable.height())) {
headerTable.offset({ top: windowTop, left: headerTable.offset().left });
}
//For footer
if (windowBottom > dataTable.offset().top + footerTable.outerHeight()
&& windowBottom < dataTableHeight + footerTable.outerHeight()) {
footerTable.offset({ top: windowBottom - footerTable.outerHeight(), left: footerTable.offset().left });
}
//Re adjust of the movement is too fast
if (windowTop < (dataTableTop - headerTable.height())
&& dataTableTop < (headerTable.offset().top + headerTable.height())) {
headerTable.offset({ top: dataTable.offset().top - headerTable.height(), left: headerTable.offset().left });
}
if (windowBottom > dataTableHeight + footerTable.outerHeight()) {
footerTable.offset({ top: dataTableHeight, left: footerTable.offset().left });
}

});

然后在调整窗口大小时检查页脚和页眉

        $(window).resize(function () {
setInitializeHeadersAndFootersPosition();
});
function setInitializeHeadersAndFootersPosition() {
var dataTableTop = dataTable.offset().top;
var dataTableHeight = dataTableTop + dataTable.outerHeight();
var windowTop = $(window).scrollTop();
var windowBottom = screenBottom();
if (windowBottom > dataTableTop && windowBottom < dataTableHeight) {
footerTable.offset({ top: windowBottom - footerTable.outerHeight(), left: footerTable.offset().left });
}
if (footerTable.offset().top < dataTableHeight && windowBottom > dataTableHeight) {
footerTable.offset({ top: dataTableHeight, left: footerTable.offset().left });
}
if (windowTop > dataTableTop && windowTop < dataTableHeight) {
headerTable.offset({ top: windowTop, left: headerTable.offset().left }); //Header does not need the offset
}
}

关于jquery - jqgrid固定列标题和固定页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com