神の恵みによって。多くの闘争の後!私はついに達成しましたthis!
私は彼の専門家のヒントのためにBalusCに感謝のバンドルを支払う
私はすべてと私の解決策を共有したいと思います。
<p:selectOneMenu value="#{dbmBean.selectedTable}" style="height:27px" >
<c:forEach items="#{dbmBean.tableNames}" var="table">
<f:selectItem itemLabel="#{table.value}" itemValue="#{table.key}"/>
</c:forEach>
</p:selectOneMenu>
<p:commandButton value="Go" action="#{dbmBean.goToTable}" ajax="false" />
...
<p:dataTable binding="#{dbmBean.table}" var="row" rowIndexVar="index">
<f:facet name="header"/>
<p:columns value="#{dbmBean.columns}" var="column" columnIndexVar="colIndex" >
<f:facet name="header">
#{column.header}
</f:facet>
<h:outputText value="#{row[column.property]}"/>
</p:columns>
</p:dataTable>
とバッキングBeanで:私はこのスクリーンショットに望んでいたよう
public class DatabaseManagerBean implements Serializable {
private List<ColumnModel> columns; // Column model is a simple class with two string properties: header, property
...
public void goToTable() {
int tableIndex = new Integer(this.selectedTable);
switch (tableIndex) {
case 1:
Players tempPlayers = new Players(); //the class which get data from a database table
this.players = tempPlayers.getAllPlayers();
this.columnNames = tempPlayers.getColumnNames();
for (String colName : columnNames) {
columns.add(new ColumnModel(colName.toUpperCase(), colName));
}
table.setRendered(true);
table.setValue(this.players);
break;
...
default:
table.setRendered(false);
} //end of switch statement
} //end of goToTable() method
} //end of DatabaseManagerBean
このコードスニペットは、正確に動作しますので、ここで
は、私は私のXHTMLファイルになかったものです! :-)
image http://s19.postimage.org/kt8xiy80z/image.png
しても、誰かが原因不明の左または不足している何かを見つける場合は、コメントを書いてください。
そしてもう一度BalusCに帽子をかける。彼のヒントがなければ、私はこの目的を達成できません。 :-)
オプティマスプライムとPrimeFacesチームに感謝したいと思います。 :-)
私は、Stackoverflowチームにも感謝します。私たちは、このような議論のためにすばらしいプラットフォームを提供してくれました。 :-)
ありがとうございます! :-)
正しいデータテーブルは何ですか? jsfでは条件付きレンダリングが標準です。 –
すみません。 JSFの新機能は、選択したデータテーブルの可視性を変更する方法を知らなかった理由です。 –
ところで、私は私の質問を更新しました –