Way to make jqGrid responsive on web browsers(使 jqGrid 在 Web 浏览器上响应的方法)
问题描述
我是 jqGrid 的新手,我需要在调整 Web 浏览器窗口大小时调整该网格的大小.我在网格中应用了 autowidth : true;
, shrinkToFit: true;
但这不起作用.
I am new in jqGrid and I need that grid will be resized on resizing the window of the web browser. I have applied autowidth : true;
, shrinkToFit: true;
in grid but that is not working.
CSS width : 100%
的设置是唯一的一种实现,但在 jqGrid 的情况下就不好了
它在 px
的许多内部结构上显式地设置了 width
.
Setting of CSS width : 100%
is the only one implementation, but it's not good in case of jqGrid
which set width
in px
explicitly on many its internal structures.
解决它的完美方法是什么?
what would be the perfect way to solve it ??
推荐答案
jqGrid 在许多内部结构(div、表格等)上使用固定的 width
值.所以不能只设置 CSS width : 100%
.尽管如此,还有另一种方法可以做到这一点.可以在 window
对象上注册 resize
事件处理程序并显式调用 setGridWidth
.该方法将jqGrid的所有内部结构调整为新的宽度.所以这将是一种干净的方法.
jqGrid uses fixed width
value on many internal structures (divs, tables and so on). So one can't just set CSS width : 100%
. Nevertheless there are another way to do the same. One can register resize
event handler on window
object and to call setGridWidth
explicitly. The method adjust all internals structures of jqGrid to new width. So it would be clean method.
如果你使用 autowidth: true
那么 jqGrid 将 jqGrid 的宽度设置为其父级的宽度只有一次.在 $(window).resize
处理程序中,我们可以获取父级的 new(当前)宽度并重置网格 width
的值.对应的代码如下
If you use autowidth: true
then jqGrid set the width of jqGrid to the width of it's parent only once. Inside of $(window).resize
handler we can get new (the current) width of the parent and reset the value of grid width
. The corresponding code will be the following
$(window).on("resize", function () {
var $grid = $("#list"),
newWidth = $grid.closest(".ui-jqgrid").parent().width();
$grid.jqGrid("setGridWidth", newWidth, true);
});
我使用 $("#list").closest(".ui-jqgrid")
而不是 $("#list")
因为 jqGrid 构建了一些潜水在主 <table>
元素上.$("#list").closest(".ui-jqgrid")
给出了包含网格所有元素的外部 div.
I used $("#list").closest(".ui-jqgrid")
instead of $("#list")
because jqGrid build some dives over the main <table>
element. $("#list").closest(".ui-jqgrid")
gives as the outer div which include all the elements of the grid.
修改后的小提琴演示 现场演示代码.
这篇关于使 jqGrid 在 Web 浏览器上响应的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使 jqGrid 在 Web 浏览器上响应的方法
基础教程推荐
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- 直接将值设置为滑块 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01