1)为此,您必须使用 bind rich:scrollableDataTable 与支持 bean 中的 HtmlScrollableDataTable 实例。
在支持 bean 中,使用访问器方法创建它的实例,然后您可以通过添加 inputText 组件来相应地对其进行初始化。将 actionListeners 添加到这些输入组件,然后在侦听器中,您可以将这些 inputText 值作为 outputText 再次作为行添加到表中。
2)否则,您可以使用 inputText 而不是 outputText 并禁用除第一行以外的后续行,因此只能显示数据 - 阻止输入。
<rich:scrollableDataTable value="{resultList}" var="result">
<rich:column>
<f:facet name="header">Name</f:facet>
<h:inputText value="#{result.name}" disabled ="#{!result.isFirstRow}"/>
</rich:column>
<rich:column>
<f:facet name="header">Category</f:facet>
<h:inputText value="#{result.category}" disabled ="#{!result.isFirstRow}"/>
</rich:column>
</rich:scrollableDataTable>
支持豆:
//---
public void initialize(){
resultList.add(new Result("", "", true)); // Setting 1st input row enabled
}
public void inputListener(ActionEvent event){
// appending object based on input to the resultList
resultList.add(new Result(inputName, inputValue, false));
// added a boolean field to identify rows added later & to make them enable/disable accordingly
}
//---
我不熟悉 Richfaces,但尝试实现它,就像我使用 IceFaces 所做的那样。