本文概述
此组件用于呈现表。它以表格形式显示数据。它与<rich:column>和<rich:columnGroup>组件一起使用, 以列出数据模型的内容。
value属性用于保存数据模型, 而var属性指定在遍历数据模型时使用的变量。
dataTable需要一组<rich:column>组件来定义内容。
样式类和皮肤参数
下表包含DataTable的Style类和相应的外观参数。
Class | Function | 皮肤参数 | 映射的CSS属性 |
---|---|---|---|
.rf-dt | 它用于定义表格的样式。 | tableBackgroundColor tableBorderWidth | 背景颜色border-left-width, border-top-width |
.rf-dt-cap | 它用于定义表格标题的样式。 | 没有皮肤参数。 | |
.rf-dt-r | 它用于定义表格行的样式。 | 没有皮肤参数。 | |
.rf-dt-fst-r | 它用于定义表中第一行的样式。 | 没有皮肤参数。 | |
.rf-dt-c | 它用于定义表格单元格的样式。 | tableBackgroundColor tableBorderWidth | 背景颜色border-bottom-width, border-right-width |
.rf-dt-nd | 它用于定义节点的样式。 | tableBorderColor | 边框底色, 边框右色 |
.rf-dt-hdr | 它用于定义表头的样式。 | 没有皮肤参数。 | |
.rf-dt-hdr-fst | 用于定义第一个标题的样式。 | 没有皮肤参数。 | |
.rf-dt-hdr-c | 它用于定义标题单元格的样式。 | tableHeaderBackgroundColor tableBorderWidth | 背景颜色border-bottom-width, border-right-width |
.rf-dt-shdr | 它用于定义表子标题的样式。 | 没有皮肤参数。 | |
.rf-dt-shdr-fst | 它用于定义第一个子标题的样式。 | 没有皮肤参数。 | |
.rf-dt-shdr-c | 它用于定义子标题单元格的样式。 | tableHeaderBackgroundColor | background-color |
.rf-dt-ftr | 它用于定义表格页脚的样式。 | 没有皮肤参数。 | |
.rf-dt-ftr-fst | 用于定义第一个页脚的样式。 | 没有皮肤参数。 |
例子
在下面的示例中, 我们正在实现<rich:dataTable>组件。本示例包含以下文件。
JSF文件
// data-table.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<f:view>
<h:head>
<title>Rich Data Table</title>
</h:head>
<h:body>
<h:form>
<rich:dataTable value="#{studentRecord.records}" var="record" rows="4">
<f:facet name="header">
<h:outputText value="Student Records" />
</f:facet>
<rich:column>
<f:facet name="header">Student ID</f:facet>
<h:outputText value="#{record.id}"/>
</rich:column>
<rich:column>
<f:facet name="header">Student Name</f:facet>
<h:outputText value="#{record.name}"/>
</rich:column>
<rich:column >
<f:facet name="header">Student Email</f:facet>
<h:outputText value="#{record.email}"/>
</rich:column>
<rich:column>
<f:facet name="header">Student Contact</f:facet>
<h:outputText value="#{record.contactNumber}"/>
</rich:column>
</rich:dataTable>
</h:form>
</h:body>
</f:view>
</ui:composition>
托管豆
// StudentRecord.java
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class StudentRecord {
String id;
String name;
String email;
String contactNumber;
List<StudentRecord> records;
public StudentRecord(){}
public StudentRecord(String id, String name, String email, String contactNumber) {
this.id = id;
this.name = name;
this.email = email;
this.contactNumber = contactNumber;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getContactNumber() {
return contactNumber;
}
public void setContactNumber(String contactNumber) {
this.contactNumber = contactNumber;
}
public List<StudentRecord> getRecords() {
records = new ArrayList<StudentRecord>();
records.add(new StudentRecord("101", "Raju", "raju@abc.com", "52534252"));
records.add(new StudentRecord("102", "Rama", "rama@abc.com", "52235252"));
records.add(new StudentRecord("103", "John", "john@abc.com", "52456252"));
records.add(new StudentRecord("104", "Peter", "peter@abc.com", "55625252"));
return records;
}
public void setRecords(List<StudentRecord> records) {
this.records = records;
}
public int getNumberOfRecords(){
return this.records.size();
}
}
输出
评论前必须登录!
注册