如何将样式应用于PrimeFaces dataTable?

时间:2013-11-01 01:52:07

标签: css jsf jsf-2 primefaces datatable

最初,我有一个JSF数据表2.0,如下所示:

<h:dataTable value="#{bean.items}" var="item" styleClass="table table-hover">

看起来像这样:

Before use PrimeFaces DataTable (I need discover what's the selected row

我想使用行选择,所以我切换到PrimeFaces 4.0数据表:

<p:dataTable value="#{bean.items}" var="item" styleClass="table table-hover"
    rowKey="#{item.id}" selection="#{bean.selectedItem}" selectionMode="single">

看起来像这样:

After use Primefaces (but can't discover the selected row yet :(

但是,我的样式类tabletable-hover未应用。这是怎么造成的,我该如何解决?

5 个答案:

答案 0 :(得分:13)

获取Primefaces here版本的Primefaces用户指南 在该文档中,您将找到如何在 Skinning 标题下覆盖每个组件的样式 例如:
以下是p:outputLabel

的蒙皮

enter image description here

如果你想改变颜色,我会使用我的css,因为它适用于所有p:outputLabel

.ui-outputlabel{
color:blue;
}   

如果您只想更改一个特定p:outputLabel的样式,可以像这样使用

<div class="myLabel">
   <p:outputLabel value="This is Demo" />
</div>
然后CSS会像:

.myLabel .ui-outputlabel{
    color:blue;
}

答案 1 :(得分:4)

嗯......这不是tableStyleClass - 属性,必须是table table-striped吗?

您仅使用styleClass

答案 2 :(得分:2)

在primefaces中,基本样式是jquery的控制器。您可以更改dataTable样式,更改dataTable的主题css样式。如果你想使用jquery themeroller动态改变样式,请检查此链接 - http://www.datatables.net/styling/themes

以下是dataTable的负责css段 - 根据您的需要进行更改并添加到您的css文件

.ui-datatable table{
	border-collapse:collapse;width:100%;
}
.ui-datatable .ui-datatable-header,.ui-datatable .ui-datatable-footer{
	text-align:center;padding:4px 10px;
}
.ui-datatable .ui-datatable-header{
	border-bottom:0px none;
}
.ui-datatable .ui-datatable-footer{
	border-top:0px none;
}
.ui-datatable thead th, .ui-datatable tfoot td{
	text-align:center;
}
.ui-datatable thead th,.ui-datatable tbody td,.ui-datatable tfoot td{
	padding:4px 10px;
	overflow:hidden;
	white-space:nowrap;
	border-width:1px;
	border-style:solid;
}
.ui-datatable tbody td{
	border-color:inherit;
}
.ui-datatable .ui-sortable-column{
	cursor:pointer;
}
.ui-datatable div.ui-dt-c{
	position:relative;
}
.ui-datatable .ui-sortable-column-icon{
	display:inline-block;
	margin:-3px 0px -3px 2px;
}
.ui-datatable .ui-column-filter{
	display:block;
	width:100px;
	margin:auto;
}
.ui-datatable .ui-expanded-row{
	border-bottom:0px none;
}
.ui-datatable .ui-expanded-row-content{
	border-top:0px none;
}
.ui-datatable .ui-row-toggler{
	cursor:pointer;
}
.ui-datatable tr.ui-state-highlight{
	cursor:pointer;
}
.ui-datatable .ui-selection-column .ui-chkbox-all{
	display:block;
	margin:0px auto;
	width:16px;
	height:16px;
}
.ui-datatable-scrollable table{
	table-layout:fixed;
}
.ui-datatable-scrollable-body{
	overflow:auto;
}
.ui-datatable-scrollable-header,.ui-datatable-scrollable-footer{
	overflow:hidden;
	border:0px none;
}
.ui-datatable-scrollable .ui-datatable-scrollable-header,.ui-datatable-scrollable .ui-datatable-scrollable-footer{
	position:relative;
}
 .ui-datatable-scrollable .ui-datatable-scrollable-header td{
	font-weight:normal;
}
.ui-datatable-scrollable-body::-webkit-scrollbar{
	-webkit-appearance:none;
	width:15px;
	background-color:transparent;
}
.ui-datatable-scrollable-body::-webkit-scrollbar-thumb{
	border-radius:8px;
	border:1px solid white;
	background-color:rgba(194,194,194,.5);
}
.ui-datatable .ui-datatable-data tr.ui-state-hover{
	border-color:inherit;
	font-weight:inherit;
	cursor:pointer;
}
.ui-datatable .ui-paginator,.ui-datatable .ui-paginator{
	padding:2px;
}
.ui-column-dnd-top, ui-column-dnd-bottom{
	display:none;
	position:absolute;
}
.ui-column-dnd-top .ui-icon, ui-column-dnd-bottom .ui-icon{
	position:absolute;
	top:-4px;
}
/* InCell Editing */.ui-datatable .ui-cell-editor-input{
	display:none;
}
.ui-datatable .ui-row-editing .ui-cell-editor .ui-cell-editor-output{
	display:none;
}
.ui-datatable .ui-row-editing .ui-cell-editor .ui-cell-editor-input{
	display:block;
}
.ui-datatable .ui-row-editor span{
	cursor:pointer;
	display:inline-block;
}
.ui-datatable .ui-row-editor .ui-icon-pencil{
	display:inline-block;
}
.ui-datatable .ui-row-editing .ui-row-editor .ui-icon-pencil{
	display:none;
}
.ui-datatable .ui-row-editor .ui-icon-check,.ui-datatable .ui-row-editor .ui-icon-close{
	display:none;
}
.ui-datatable .ui-row-editing .ui-row-editor .ui-icon-check,.ui-datatable .ui-row-editing .ui-row-editor .ui-icon-close{
	display:inline-block;
}
.ui-datatable .ui-datatable-data tr.ui-row-editing td.ui-editable-column,.ui-datatable .ui-datatable-data td.ui-cell-editing{
	padding:0;margin:0;
}
/*resizer */.ui-datatable .ui-column-resizer{
	width:8px;height:20px;
	padding:0px;cursor:col-resize;
	background-image:url("/ScraperOnWeb/javax.faces.resource/spacer/dot_clear.gif.jsf?ln=primefaces");
	margin:-4px -10px -4px 0px;
	float:right;
}
.ui-datatable .ui-filter-column .ui-column-resizer{
	height:45px;
}
.ui-datatable .ui-column-resizer-helper{
	width:1px;
	position:absolute;
	z-index:10;
	display:none;
}
.ui-datatable-resizable{
	padding-bottom:1px;/*fix for webkit overlow*/overflow:auto;
}
.ui-datatable-resizable table{
	table-layout:fixed;
}
.ui-datatable-rtl{
	direction:rtl;
}
.ui-datatable-rtl.ui-datatable thead th, .ui-datatable-rtl.ui-datatable tfoot td{
	text-align:right;
}

答案 3 :(得分:1)

您可以根据您使用的主要版面版本根据主要用户指南更改样式。例如,对于数据表,下一张图片会告诉您类和应用哪个组件。  你可以在这里查看最后一个版本6.2的用户指南

https://www.primefaces.org/docs/guide/primefaces_user_guide_6_2.pdf

enter image description here

enter image description here

我发布了一个示例来说明我是如何从https://www.primefaces.org/showcase/ui/data/datatable/basic.xhtml修改数据表展示的css的,并且效果很好。

body {
background-color: #221F4B;
}

.ui-datatable {
    margin: 5% 8% 0 8%;
    text-align: center;
}

.ui-datatable thead th {
    color: #221F4B;
}

.ui-datatable tbody tr {
    height: 5rem;
}

.ui-datatable-even {
    background-color: #DFDFDF;
    color: #221F4B;
}

.ui-datatable-odd {
    background-color: #302C6C;
    color: #A09FB2;
}

@media screen and (min-width: 769px) {
    .ui-datatable {
        margin: 5% 20% 0 20%;
    }
}

我希望它对某人有所帮助。亲切的问候!

答案 4 :(得分:0)

我正在使用Primefaces 6.0

dataTable中有tableTable选项,您可以使用样式中使用的所有内容 例如:

tableStyle="font-family: sans-serif; border:none;font-size:  small;padding:1px; background-color: #EAF7FC; background:#EAF7FC"

所以dataTable看起来像这样

 <p:dataTable id="tbl" var="fmlist" value="#{testmb.fontList}"
                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {Exporters}"
                     paginator="true" rows="25" style="margin-bottom:20px" scrollable="true"  draggableRows="false"  cellSeparator="true"  scrollHeight="330" 
                     tableStyle="font-family: sans-serif; border:none;font-size:  small;padding:1px; background-color: #EAF7FC; background:#EAF7FC" >