Css 如何在PrimeFaces 3.0中设置p:dataTable中p:column的宽度?
我使用的是PrimeFaces 3.0-M3,我有一个Css 如何在PrimeFaces 3.0中设置p:dataTable中p:column的宽度?,css,jsf,jsf-2,primefaces,datatable,Css,Jsf,Jsf 2,Primefaces,Datatable,我使用的是PrimeFaces 3.0-M3,我有一个,其中有两列。我希望第一列的宽度固定为20px。另一列可以使用剩余的任何空间 以下是我目前获得的屏幕截图: 第一个似乎忽略了应该限制宽度的样式设置。它的大小对于它里面唯一的内容——小小的彩色正方形来说太大了,然后另一列被推到了太右边 以下是我的Facelet代码的更多内容: <p:dataTable id="dataTableExpressions" value="#{catconBean.userD
,其中有两列。我希望第一列的宽度固定为20px。另一列可以使用剩余的任何空间
以下是我目前获得的屏幕截图:
第一个
似乎忽略了应该限制宽度的样式设置。它的大小对于它里面唯一的内容——小小的彩色正方形来说太大了,然后另一列被推到了太右边
以下是我的Facelet代码的更多内容:
<p:dataTable
id="dataTableExpressions"
value="#{catconBean.userDefinedExpressionDataModel}"
var="currentRow"
emptyMessage="!! EMPTY TABLE MESSAGE !!"
selection="#{catconBean.userDefinedExpressionToEdit}"
selectionMode="single">
<p:ajax
event="rowSelect"
listener="#{catconBean.onUserDefinedExpressionRowSelect}"
update=":toolbarForm:catconToolbar" />
<p:ajax
event="rowUnselect"
listener="#{catconBean.onUserDefinedExpressionRowUnselect}"
update=":toolbarForm:catconToolbar" />
<p:column id="paletteColor" style="width:20px;">
<h:panelGroup
layout="block"
rendered="#{not empty currentRow.paletteColor}"
style="width:16px;height:16px;border:thin;border-style:solid;border-color:black;background-color:##{currentRow.paletteColor.RGB};" />
<h:panelGroup
layout="block"
rendered="#{empty currentRow.paletteColor}"
style="width:16px;height:16px;border:thin;border-style:dashed;border-color:red;background-color:white;text-align:center;">
<h:outputText value="?" style="color:red;font-weight:bold;" />
</h:panelGroup>
</p:column>
<p:column id="name">
<f:facet name="header">
<h:outputText value="#{bundle.catcon_label_CategoryName}" />
</f:facet>
<h:outputText
value="#{currentRow.name}"
style="#{not currentRow.definitionComplete ? 'color:red;' : ''}" />
</p:column>
</p:dataTable>
有谁能告诉我如何修改我的Facelet代码,使第一列的固定宽度为20px吗?在PrimeFaces 3.0中,该样式应用于生成的表格单元格内部
,而不是您(和我)所期望的
。以下示例应该适合您:
与
在PrimeFaces 3.5及以上版本中,它应该完全按照您编码和预期的方式工作。您能试试吗
<p:column width="20">
我不知道您使用的是什么浏览器,但根据w3schools.com,第n个孩子和第n个最后一个孩子现在可以在MSIE 8上使用。我不知道9点。将为您提供更多信息。我刚刚做了以下操作(在V3.5中),效果非常好:
<p:column headerText="name" width="20px"/>
这对我很有效
<p:column headerText="name" style="width:20px;"/>
添加到@BalusC的答案中。您还需要设置标题的宽度。在我的例子中,下面的css只能应用于我的表的列宽
.myTable td:nth-child(1),.myTable th:nth-child(1) {
width: 20px;
}
出于某种原因,这是行不通的
<p:column headerText="" width="25px" sortBy="#{row.key}">
但这起到了作用:
<p:column headerText="" width="25" sortBy="#{row.key}">
内联样式在任何情况下都可以工作
<p-column field="Quantity" header="Qté" [style]="{'width':'48px'}">
我试过了,但似乎没有任何效果。我所做的唯一其他更改是从我的
声明中删除style=“width:20px;”“
,这也没有任何效果。它是。。。适用于Firefox 4.0.1下的解决方案,但不适用于IE 7。不幸的是,IE7是在目标环境中使用的浏览器。旧浏览器确实不支持所有现代选择器。考虑IE7.JS:或者向PF成员报告一个问题,您希望在<代码> <代码> > <代码> <代码>中(<>代码> <代码> >(这是我首先看到的,但让我吃惊的是它不支持那个属性)。谢谢你的帮助!不客气。也许他们能够提出替代的和IE7兼容的方法来实现这一要求。就目前而言,我没有看到任何,但我对他们的答案很好奇。(仍然有效:)在Primefaces 6.1中,属性宽度没有单位表示px,单位为%,表示表宽度的百分比。%n对我不起作用。我可以像使用%一样使用例如width=“40”
和width=“60”
。原因是PF在width属性中添加了“px”,所以在第一种情况下,您得到了style=“width:10pxpx”
<p-column field="Quantity" header="Qté" [style]="{'width':'48px'}">