为数据表/数据网格中的多个必填字段添加 p:outputLabel
Adding p:outputLabel for multiple required fileds inside datatable / datagrid
我有简单的 Primefaces
DataTable
,在这个 DataTable
里面我有一个 p:outputLabel ,我需要 for 属性来指向多个输入字段,我该怎么做?
示例代码:
<p:dataTable var="car" value="#{mbBasicView.cars}">
<p:column headerText="Id">
<p:outputText value="#{car.name}" />
</p:column>
<p:column headerText="Year">
<p:inputText id="carYear" value="#{car.year}" />
</p:column>
<p:column headerText="Brand">
<h:inputText id="carPrice" value="#{car.price}" />
</p:column>
</p:dataTable>
我想将车名指向年份和价格,如果用户没有输入年份或/和价格,则必须增加一个必需的验证消息,并突出显示(并添加开始)到车名。
我已经找到解决这个问题的方法,使用 CSS 并添加额外的标签,这可能对 panelGrid 也有帮助(我认为 <p:column>
里面的任何东西),但我用 [=13 测试了它=] 仅:
<p:dataTable var="car" value="#{mbBasicView.cars}">
<p:column headerText="Id">
<p:outputText styleClass="car-name" for="carYear" value="#{car.name}" />
<p:outputText styleClass="car-name" for="carPrice" value="#{car.name}" />
</p:column>
<p:column headerText="Year">
<p:inputText id="carYear" value="#{car.year}" />
</p:column>
<p:column headerText="Brand">
<h:inputText id="carPrice" value="#{car.price}" />
</p:column>
</p:dataTable>
和 css 如果另一个是错误状态或重复则隐藏文件的样式:
.car-name {
display:none;
}
.car-name.ui-state-error {
display:block;
}
.car-name ~ .car-name {
display:block;
}
.car-name ~ .car-name.ui-state-error {
display:block;
}
.car-name.ui-state-error ~ .car-name{
display:none;
}
希望这会有所帮助,如果您有 2 个以上的字段,它将起作用,除非您有 2 个正常标签,然后是错误标签,我认为您可以使用另一种样式来解决这种情况 class,玩转 CSS 魔法会有很棒的效果。
我有简单的 Primefaces
DataTable
,在这个 DataTable
里面我有一个 p:outputLabel ,我需要 for 属性来指向多个输入字段,我该怎么做?
示例代码:
<p:dataTable var="car" value="#{mbBasicView.cars}">
<p:column headerText="Id">
<p:outputText value="#{car.name}" />
</p:column>
<p:column headerText="Year">
<p:inputText id="carYear" value="#{car.year}" />
</p:column>
<p:column headerText="Brand">
<h:inputText id="carPrice" value="#{car.price}" />
</p:column>
</p:dataTable>
我想将车名指向年份和价格,如果用户没有输入年份或/和价格,则必须增加一个必需的验证消息,并突出显示(并添加开始)到车名。
我已经找到解决这个问题的方法,使用 CSS 并添加额外的标签,这可能对 panelGrid 也有帮助(我认为 <p:column>
里面的任何东西),但我用 [=13 测试了它=] 仅:
<p:dataTable var="car" value="#{mbBasicView.cars}">
<p:column headerText="Id">
<p:outputText styleClass="car-name" for="carYear" value="#{car.name}" />
<p:outputText styleClass="car-name" for="carPrice" value="#{car.name}" />
</p:column>
<p:column headerText="Year">
<p:inputText id="carYear" value="#{car.year}" />
</p:column>
<p:column headerText="Brand">
<h:inputText id="carPrice" value="#{car.price}" />
</p:column>
</p:dataTable>
和 css 如果另一个是错误状态或重复则隐藏文件的样式:
.car-name {
display:none;
}
.car-name.ui-state-error {
display:block;
}
.car-name ~ .car-name {
display:block;
}
.car-name ~ .car-name.ui-state-error {
display:block;
}
.car-name.ui-state-error ~ .car-name{
display:none;
}
希望这会有所帮助,如果您有 2 个以上的字段,它将起作用,除非您有 2 个正常标签,然后是错误标签,我认为您可以使用另一种样式来解决这种情况 class,玩转 CSS 魔法会有很棒的效果。