jquery - 内联编辑时如何保持jqGrid的水平滚动位置?

标签 jquery jqgrid

我的页面上有一个 jqGrid 表格,有很多列,因此网格比浏览器窗口宽,出现水平滚动条。

问题是,当用户单击一行开始编辑时,浏览器框架会向左滚动,从而使用户感到困惑,甚至有时会隐藏所选单元格。

我已经尝试过我找到的方法 herehere ,但它们对我不起作用 - 我可以检索当前的滚动位置,但无法设置它。 单元格在 columnsModel 中设置为可编辑,因此我在 formatCell 事件中获取滚动位置,并尝试使用以下代码在 afterEditCell 中设置滚动位置:

afterEditCell: function(rowid, cellname, value, irow, icol) { 

 jQuery("#list").closest(".ui-jqgrid-bdiv").scrollLeft(scrollPosition);
 window.scrollTo(scrollPosition,0);
 if (window.pageXOffset) {window.pageXOffset = scrollPosition;};
 if (document.body.parentElement) {document.body.parentElement.scrollLeft = scrollPosition;};   
 if (document.body) {document.body.scrollLeft = scrollPosition;};

而且,这不会影响网格的行为 - 它滚动到最左边的位置。

还有其他方法可以实现吗?

最佳答案

在 loadComplete 函数上尝试这个

var offset = $("#" + *subgrid_table_id*).offset();
var w = $(window);
var fromTop = offset.top - w.scrollTop();
$('html, body').animate({
    scrollTop: offset.top - fromTop
}, 1);

此代码保留网格的最后位置

关于jquery - 内联编辑时如何保持jqGrid的水平滚动位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139681/

相关文章:

javascript - 使用外部json数据在canvas js中渲染图形

jquery - 如何让 JQGrid 识别服务器发送的错误?

javascript - 如果多个调用之一失败,则 JSONP 请求调用不成功

jquery - 如何编辑 jquery 函数

ruby-on-rails - 在 Rails 中,如何使用 jquery-file-upload 和 CarrierWave 处理多个多态文件上传?

javascript - 如何将html5日期输入限制为合理的年份

jquery - jqGrid 上的 prettyCheckable 不起作用

javascript - 如何解析包含函数的 JSON 字符串?

javascript - jqGrid - 将类分配给导航按钮

jquery - 带有 Twitter Bootstrap 的响应式/流畅的 jQGrid