【发布时间】:2023-03-23 20:12:01
【问题描述】:
我有一个带有实时滚动功能的数据表。该表适合我的开发机器,但此应用程序的用户具有更大的屏幕。如果数据表适合屏幕尺寸,那就太好了。此外,数据表的高度应该通过更多的行数进行调整以进行实时滚动。目前我有 15 行用于实时滚动。如果滚动行随着屏幕高度的增加而增加会很好。请在这方面帮助我。
我的数据表代码sn-p:
<h:form id="form">
<div id="content">
<h:selectOneMenu id="workspaceOptions" />
<f:selectItem id="option1" itemLabel="Assignments"
itemValue="assignment" />
</h:selectOneMenu>
<p:dataTable id="workSpaceList" var="data"
value="#{workSpaceBean.lazylpId}" widgetVar="multiSelection"
selection="#{workSpaceBean.selectedRows}" resizableColumns="true"
liveScroll="true" scrollRows="15" scrollWidth="85%"
scrollHeight="69%" styleClass=".ui-datatable-hor-scroll"
tableStyle="table-layout:auto;width:100%;" scrollable="true"
filteredValue="#{workSpaceBean.filteredWorkSpaceItems}">
<p:ajax event="rowSelect" listener="#{workSpaceBean.onRowSelect}"
update=":editWrkSp:display" oncomplete="multiDialog.show()" />
<p:column selectionMode="multiple" style="width:5%" />
.
.
.
<p:column headerText="Insured" filterBy="#{data.insuredName}"
sortBy="#{data.insuredName}" style="width:20%">
<h:outputText value="#{data.insuredName}" />
<!-- style="width:250px" -->
</p:column>
<p:column headerText="City" filterBy="#{data.custAddress_City}"
sortBy="#{data.custAddress_City}">
<h:outputText value="#{data.custAddress_City}" />
</p:column>
</p:dataTable>
</div>
</form>
整个页面的CSS
body {
margin: 0px 0px 0px 0px;
font-family: tahoma;
font-size: 11px;
background-color: #E8F0F8;
height: 100%;
max-height: 100%;
overflow: hidden;
}
#header {
width: 100%;
height: 90px;
background-color: #194775;
position: fixed;
}
#sidepanel {
width: 180px;
height: 100%;
background-color: #D9E6F3;
margin-top: 90px;
position: fixed;
float: left;
border-right-style: solid;
border-width: 0.5px;
border-color: #4A7EBB;
/* z-index:1; */
}
#logo {
float: left;
position: absolute;
left: 5px;
}
#title {
position: absolute;
float: right;
/* padding-right: 10px;
padding-bottom:90px; */
right: 30px;
top: -25px;
/* bottom:10px; */
}
.title1 {
font-family: Agency FB;
font-size: 32px;
color: #7F7F7F;
font-style: bold;
/* float: right; */
text-align: left;
/* padding-right: 10px; */
font-weight: bold;
/* padding-bottom:20px; */
}
.accordionMenu .ui-accordion-header a {
background: #194775;
color: white;
}
.accordionMenu .ui-accordion-content {
/* color:#254061!important */
text-decoration: none;
background-color: #B9CDE5;
font-weight: bold;
padding: 5px 5px;
}
#content {
position: fixed;
margin: 90px 0 0 180px;
width: 100%;
height: 100%;
background-color: #E8F0F8;
}
.label {
display: block;
font-weight: bold;
color: #FFFFFF;
background-color: #194775;
width: 170px;
/* text-align:left; */
padding: 4px 4px 4px 6px;
text-decoration: none;
margin-top: 1px;
}
.selectMenu {
/* float:right; */
margin-left: 20px;
margin-top: 15px;
}
.ui-datatable-hor-scroll .ui-datatable-tablewrapper,.scrolling-div .ui-datatable-tablewrapper
{
overflow: auto;
width: 100%;
height: 100% padding-bottom: 5px;
}
.datatable {
padding-left: 15px;
padding-right: 15px;
}
.calendarStyle {
width: 250px;
}
.ui-corner-top {
display: none;
}
.ui-chkbox-box ui-widget ui-corner-all ui-state-default {
/* vertical-align:middle; */
display: none;
}
【问题讨论】:
-
你能给我们你的generetad HTML而不是你提供的吗?我之所以这么问,是因为我觉得这也可以使用 css 溢出属性来修复,并且需要构建一个具有 HTML 功能的fiddle 以确认这一点。
-
如果您在 css 部分使用 % 而不是像素,那不会相对于屏幕大小调整文档吗?
-
如果您想这样做,可以尝试使用 JavaScript。我想这就是你想要的:w3schools.com/jsref/met_win_resizeto.asp
-
查看文档。 scrollHeight="69%" 不正确。该属性只接收整数
标签: css jsf-2 primefaces datatable