1

私はjsf 2.0を初めて使用するため、プライムフェイスのデータグリッドとラジオボタンをグループ化する重大な問題に直面しています。私は JSF 2.0-Primefaces 3.3、Java 1.6 を使用しており、Windows オペレーティング システムの Tomcat サーバーでアプリケーションを実行しています。

問題は、データ グリッドとラジオ ボタンのグループ化です。次の段落では、サンプル コードについて説明します。

    @ManagedBean(name="quickBill")
    @ViewScoped
    public class QuickBill extends BaseManagedBean implements Serializable {
private List<String[]> insurerIDs=null;

@PostConstruct
public void init(){

    loadInsurer();
}   

private void loadInsurer(){
    logger.info("Entered Load Insurer");
    insurerIDs = new ArrayList<String[]>();

    if (null != insurerList) {
        insurerIDs.add(new String[] {"InsurerID1","Insurer_Name1") });
        insurerIDs.add(new String[] {"InsurerID2","Insurer_Name2") });
        insurerIDs.add(new String[] {"InsurerID3","Insurer_Name3") });
        insurerIDs.add(new String[] {"InsurerID4","Insurer_Name4") });

    }
}
public List<String[]> getinsurerIDs() {
    return insurerIDs;

}


  }

jsf コードは次のとおりです。

    <p:dataGrid  var="quickBillVar" value="#{quickBill.insurerIDs}" columns="4" > 
        <p:column selectionMode="single">                              
           <p:selectOneRadio id="options" value="#{quickBill.selectedOption}">                    
          <f:selectItem itemLabel="#{quickBillVar[1]}" itemValue="#{quickBillVar[1]}"/>   
          </p:selectOneRadio>   
          <p:commandLink id="insurerid"  title="Isurer">
   <p:graphicImage value="../../images/insurers1/#{quickBillVar[0]}.jpg"/>   
 </p:commandLink>   
   </p:column>                                  
   </p:dataGrid>

上記のコードを実行するとラジオ ボタンが表示され、ユーザーは複数のラジオ ボタンを同時に選択できます。ただし、要件は、ユーザーが一度に複数のボタンを選択できるようにするのではなく、ユーザーが 1 つのボタンのみを選択できるように制限することです。また、 selectionMode="single" を使用して期待される出力を生成しましたが、あまり役に立ちませんでした。

これについて親切に助けていただくか、この問題を克服する例を教えてください。

4

2 に答える 2

0

この例のカスタム レイアウトが役立つと思います。 https://www.primefaces.org/showcase/ui/input/oneRadio.xhtml

于 2013-10-18T17:08:30.760 に答える
0

を使用して以下のコードを試すことができますMap

バッキング Bean コード

String selectedInsurer;
Map<String,String> insurerIDs = new LinkedHashMap<String,String>();
insurerIDs.put("InsurerID1", "Insurer_Name1"); //(label, value)
insurerIDs.put("InsurerID2", "Insurer_Name2");
insurerIDs.put("InsurerID3", "Insurer_Name3");
insurerIDs.put("InsurerID4", "Insurer_Name4");
//-- getter & setter 

フロントエンドで

<h:selectOneRadio value="#{quickBill.selectedInsurer}">
    <f:selectItems value="#{quickBill.insurerIDs}" />
</h:selectOneRadio>
于 2012-12-13T05:51:35.707 に答える