fixScrollOffsetAndhBoxPadding jqGrid
fixScrollOffsetAndhBoxPadding jqGrid
我正在使用免费的 jqgrid ,为了保持简短,当我尝试通过 beforeProcessing() 中的以下代码设置 jqgrid 的高度时,在 fixScrollOffsetAndhBoxPadding 上找不到方法。
$grid.setGridHeight(200).trigger("reloadGrid");
我需要设置高度的原因是,当 rownNum <10 时,我希望高度为自动。但是当 rowNum 大于 10 时,我需要网格有一个垂直滚动条。但是当设置这个高度时,我看到 javascript 错误,它说 fixScrollOffsetAndhBoxPadding 不是对象或 属性.
错误:
SCRIPT438:对象不支持 属性 或方法 'fixScrollOffsetAndhBoxPadding'
jquery.jqgrid.min.js,第202行字符381
我认为您问题的根源可能是 setGridHeight
的错误使用或 setGridHeight
在 中创建网格之前的错误使用 $grid
(例如 $grid
可能是错误的,您应该改用 $(this)
)。您没有 posted 在代码中使用这些行的地方 。在创建网格期间(在调用 onInitGrid
之前)免费 jqGrid 集 fixScrollOffsetAndhBoxPadding
属性 of $grid[0]
。
还有一点很重要:在其他回调中使用 reloadGrid
时,您应该始终非常小心。您应该了解 reloadGrid
工作 同步 。意思是reloadGrid
之后的下一行会在trigger("reloadGrid")
完成后执行。例如,您加载从服务器返回的第 5 页。 trigger("reloadGrid")
的调用会重置jqGrid的page
参数,它可以改变datatype
,放置新的Ajax请求等等。所以我严格建议只在setTimeout
内部使用trigger("reloadGrid")
。在这种情况下,您可以允许 jqGrid 处理当前请求直到结束,然后 later 重新加载:
$grid.setGridHeight(200);
setTimeout(function () {
$grid.trigger("reloadGrid");
}, 50);
如果上面的方法没有帮助那么你应该 1) 使用 jquery.jqgrid.src.js
而不是 jquery.jqgrid.min.js
来报告错误; 2) 写下您使用的免费 jqGrid 版本(4.9.1、4.9 或来自 GitHub 的当前代码); 3) post 更完整的例子可以用来 重现 问题。通过调试代码可以很容易定位到问题的根源,但是如果只看到一行代码(或者一些小的代码片段)就需要猜测原因。
我正在使用免费的 jqgrid ,为了保持简短,当我尝试通过 beforeProcessing() 中的以下代码设置 jqgrid 的高度时,在 fixScrollOffsetAndhBoxPadding 上找不到方法。
$grid.setGridHeight(200).trigger("reloadGrid");
我需要设置高度的原因是,当 rownNum <10 时,我希望高度为自动。但是当 rowNum 大于 10 时,我需要网格有一个垂直滚动条。但是当设置这个高度时,我看到 javascript 错误,它说 fixScrollOffsetAndhBoxPadding 不是对象或 属性.
错误: SCRIPT438:对象不支持 属性 或方法 'fixScrollOffsetAndhBoxPadding' jquery.jqgrid.min.js,第202行字符381
我认为您问题的根源可能是 setGridHeight
的错误使用或 setGridHeight
在 中创建网格之前的错误使用 $grid
(例如 $grid
可能是错误的,您应该改用 $(this)
)。您没有 posted 在代码中使用这些行的地方 。在创建网格期间(在调用 onInitGrid
之前)免费 jqGrid 集 fixScrollOffsetAndhBoxPadding
属性 of $grid[0]
。
还有一点很重要:在其他回调中使用 reloadGrid
时,您应该始终非常小心。您应该了解 reloadGrid
工作 同步 。意思是reloadGrid
之后的下一行会在trigger("reloadGrid")
完成后执行。例如,您加载从服务器返回的第 5 页。 trigger("reloadGrid")
的调用会重置jqGrid的page
参数,它可以改变datatype
,放置新的Ajax请求等等。所以我严格建议只在setTimeout
内部使用trigger("reloadGrid")
。在这种情况下,您可以允许 jqGrid 处理当前请求直到结束,然后 later 重新加载:
$grid.setGridHeight(200);
setTimeout(function () {
$grid.trigger("reloadGrid");
}, 50);
如果上面的方法没有帮助那么你应该 1) 使用 jquery.jqgrid.src.js
而不是 jquery.jqgrid.min.js
来报告错误; 2) 写下您使用的免费 jqGrid 版本(4.9.1、4.9 或来自 GitHub 的当前代码); 3) post 更完整的例子可以用来 重现 问题。通过调试代码可以很容易定位到问题的根源,但是如果只看到一行代码(或者一些小的代码片段)就需要猜测原因。