如何将jqgrid动态调整为当前窗口大小(基于javascript / jQuery)
最好的例子在这里(TinyMCE): 转到:http://www.tinymce.com/tryit/full.php
然后尝试按CTRL + ALT + F或菜单 - >视图 - >全屏
请帮忙,我对js / jquery有初学者知识(我知道更多的PHP语言)。
这就是我如何调用jqgrid:
$ grid-> renderGrid('#grid','#pager',true,null,null,true,true);
..提前感谢
如果你理解我,这就是我的意思。
我想在gridNav中添加自定义按钮,以便在放大和普通视图之间切换(就像tinyMCE编辑器一样!!)
我的网格表有很多列(长水平滚动),这就是为什么我想要激怒整个表格。
按钮代码......
$buttonoptions = array("#pager", array(
"caption"=>"Resize",
"onClickButton"=>"js:function(){ ... resize call here ...}", "title"=> "Resize"
)
);
$grid->callGridMethod("#grid", "navButtonAdd", $buttonoptions);
答案 0 :(得分:2)
function resizeJqGridWidth(grid_id, div_id, width)
{
$(window).bind('resize', function() {
$('#' + grid_id).setGridWidth(width, true); //Back to original width
$('#' + grid_id).setGridWidth($('#' + div_id).width(), true); //Resized to new width as per window
}).trigger('resize');
}
setGridWidth(new_width,shrink):动态设置网格的新宽度。
new_width:它将是新的宽度(像素)。
收缩(默认为true):
true - >它将允许根据当前调整大小的jqGrid宽度在网格中调整列的大小。
false - >它将在jqGrid的末尾添加额外的空白列,如果当前调整大小的jqGrid的宽度将超过其设置的jqGrid宽度。
mfs的追求。
答案 1 :(得分:1)
基于display:flex;解决方案可在此处获得:
Plnkr
测试:
修改强>
我试图解决同样的问题:有一些容器根据浏览器窗口大小缩小和伸展。
仅CSS解决方案针点:
jqGrid的CSS
.ui-jqgrid {
display: flex;
flex-direction: column;
flex:1;
width:auto !important;
}
.ui-jqgrid > .ui-jqgrid-view
{
display:flex;
flex:1;
flex-direction:column;
overflow:auto;
width:auto !important;
}
.ui-jqgrid > .ui-jqgrid-view,
.ui-jqgrid > .ui-jqgrid-view > .ui-jqgrid-bdiv {
flex:1;
width: auto !important;
}
.ui-jqgrid > .ui-jqgrid-pager,
.ui-jqgrid > .ui-jqgrid-view > .ui-jqgrid-hdiv {
flex: 0 0 auto;
width: auto !important;
}
/* enable scrollbar */
.ui-jqgrid-bdiv {
overflow: auto
}
用于组织flex布局的CSS:
.box {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-ms-flex-direction: column;
-webkit-flex-direction: column;
flex-direction: column;
}
.boxHeader {
-ms-flex: 0 0 auto;
-webkit-flex: 0 0 auto;
flex: 0 0 auto;
background-color: green;
}
.boxContent {
-ms-flex: 1 1 auto;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
-webkit-box-flex: 1.0;
overflow: auto;
}
.boxFooter {
-ms-flex: 0 1 auto;
-webkit-flex: 0 1 auto;
flex: 0 1 auto;
background-color: cornflowerblue;
}
.fullSize {
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
}
最后样本标记:
<body>
<!--Flex stuff -->
<div class="box fullSize">
<div class="boxHeader" style="background-color:#5fbff3">
header just to show that this block takes<br> as much as it needs<br> to display its<br> content
</div>
<div class="boxContent box" style="background-color:#D0D0D0; padding:15px">
<table id="list"></table>
<div id="pager"></div>
</div>
<div class="boxFooter" style="text-align:right"><span>same as header</span></div>
</div>
<!-- Flex stuff end -->
</body>
<。>在.js做
var grid = $("#list");
grid.jqGrid({ options});
不需要设置宽度或高度。 (无论如何,他们将被忽略)