/ / Primefaces dataTable単一選択検証 - 検証、プライムフェイス、データテーブル

Primeface dataTableの単一選択の検証 - 検証、プリミティブ、データテーブル

検証できます p:selectOneMenu このような:

<p:selectOneMenu id="eventTimezoneDropdown"
value="#{myBean.eventTimeZone}"
required="true"
requiredMessage="The TimeZone must be specified."
effect="none">
<f:selectItems value="#{myBean.timeZoneItems}"/>
</p:selectOneMenu>

概念的に言えば、 p:dataTable 単一行を選択しても同じ目標が達成されます - それを使用して一行を選択することができます selection 属性の代わりに属性 value 属性と使い方 value 属性の代わりに属性 <f:selectItems>.

<p:dataTable id="ActivitiesTable" var="row"
value="#{myBean.rows}"
selection="#{myBean.selectedRow}"
rowKey="#{row.activityId}">
<p:column selectionMode="single"/>
...
</p:dataTable>

ただし、検証オプションが表示されません(例: required 属性) p:dataTable.

で必要な選択検証を行う方法または回避策はありますか p:dataTable に似ています required の属性 p:selectOneMenu

環境:Primefaces 5.3、JSF 2.2.8〜14、Tomcat 7.0.68。

回答:

回答№1は1

私がprimefacesで知っていることはdatatableにはこの機能がないことですが、あなたはあなたのコードで遊ぶことができます、

私はあなたがあなたの中で同じイベントを行うことができることをお勧めします ManagedBeanしたがって、行が選択されているかどうかを確認できます。そうでない場合は、それ以外の場合は単純なメッセージを作成して、行の選択が必要であることをユーザーに通知します。

public void requiredSelect() {
if (myObject == null) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "Error", "My object is required!"));
}
}