Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如何在PrimeFaces 3.0中设置p:dataTable中p:column的宽度?_Css_Jsf_Jsf 2_Primefaces_Datatable - Fatal编程技术网

Css 如何在PrimeFaces 3.0中设置p:dataTable中p:column的宽度?

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

我使用的是PrimeFaces 3.0-M3,我有一个
,其中有两列。我希望第一列的宽度固定为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'}">