我们正在从jsf 1.2升级到jsf 2。 我们正在使用apache myfaces 2.1和富面4.3。
问题是我无法获得<rich:dataGrid>
组件的边框。
我看过帖子描述了如何删除边框,但没有人指定如何获取边框。
看起来边框默认情况下是先前渲染的(当使用富面3时它们会出现)但是在升级到富面4之后,它们不会被渲染
默认情况下。
以下是xhtml片段。
<rich:dataGrid value="#{bean.getListValues}" var="value" columns="1" rowKeyVar="index" id="qsns"
style="border-bottom-width:10px;">
<h:panelGrid id="qsn#{index+1}" border="10" columns="2">
<h:outputText value="qsn #{index+1}"/>
<h:selectOneMenu value="#{value.qsn}">
<f:selectItems value="#{bean.qsnPool}" />
</h:selectOneMenu>
<h:outputText value="Answer"/>
<h:inputText value="#{value.answer}"/>
</h:panelGrid>
</rich:dataGrid>
我还尝试在上面的代码段中为panelGrid(border =“10”)明确设置边框。
和rich:dataGrid(border-bottom-width:10px),但根据url:http://docs.jboss.org/richfaces/latest_4_2_X/Component_Reference/en-US/html/chap-Component_Reference-Tables_and_grids.html#sect-Component_Reference-Tables_and_grids-richlist
有人可以帮忙吗?
答案 0 :(得分:1)
border-bottom-width:10px;
无效,因为border-bottom-style
为none
。
<rich:datagrid>
周围的边框未在一个元素上定义。左边框和上边框是在数据网格类rf-dg
上定义的。底部和右侧在网格单元格rf-dg-c
上定义。如果要更改所有边框,则必须覆盖这些类。
答案 1 :(得分:1)
我可以通过以下更改获得所需的行为
.tableClass1 .rf-dg-c{
border: 1px solid #000;
}
table.tableClass1.rf-dg{
border-collapse:collapse;
}
<rich:dataGrid value="#{bean.getListValues}" var="value" columns="1" rowKeyVar="index" id="qsns"
styleClass="tableClass1">
<h:panelGrid id="qsn#{index+1}" border="10" columns="2">
<h:outputText value="qsn #{index+1}"/>
<h:selectOneMenu value="#{value.qsn}">
<f:selectItems value="#{bean.qsnPool}" />
</h:selectOneMenu>
<h:outputText value="Answer"/>
<h:inputText value="#{value.answer}"/>
</h:panelGrid>
</rich:dataGrid>
使用上述样式类和xhtml代码,可以完美呈现边框。
第一个样式表为网格单元格和第二个样式表折叠呈现边框 相邻单元格边框之间的空间(因为cellspacing属性不适用于rich:dataGrid)
以上选择器仅适用于本地<rich:dataGrid>
,这意味着不会影响全局<rich:dataTables>
答案 2 :(得分:0)
border属性没有做太多,尝试使用CSS样式:
<h:panelGrid style="border: 1px solid #000;"> ...
或者通过类使用CSS:
<h:panelGrid styleClass="myClass"> ...
在你的CSS中:
.myClass {
border: 1px solid #000;
}