0

ラジオボタンのあるテーブルをレンダリングしています。つまり、radioButtonを選択すると、フォーム全体を再レンダリングする必要があります。しかし、これは機能していません。

これが私のコードです:

<h:form id="summaryForm" prependId="false">
<table>
<tbody>
  <ui:repeat var="switchRow" value="#{designBean.switchReport.rowList}" varStatus="rowStatus">
     <tr class="#{rowStatus.even?'even':'odd'}">
      <td>
     <h:selectOneRadio id="switchTypeSelectionId" 
                  name="switchTypeSelection" 
              styleClass="choices"
              onclick="selectRadioButton(this);"
              value="#{designBean.designTool.switchProduct}">
      <f:selectItem itemValue="#{switchRow.rowId}"/>
      <f:ajax event="click" execute="@this" render="@form" listener="#{designBean.showIGBTDetails}"/>
    </h:selectOneRadio>
    </td>
    <ui:repeat var="switchColValue" value="#{switchRow.rowValues}">
        <td>
                    <h:outputText value="#{switchColValue}" /> 
                </td>
    </ui:repeat>
      </tr>
     </ui:repeat>
</tbody>
</table>
</h:form>
4

2 に答える 2

0

いくつかの調査の後、これを達成する簡単な方法を見つけました。これが私の答えです。h:selectOneRadio を使用する代わりに、それを HTML に変更し、Ajax 関数/リスナーを呼び出す panelGrid コンポーネントをクリックします。

<h:form id="summaryForm" prependId="false">
<table>
<tbody>
  <ui:repeat var="switchRow" value="#{designBean.switchReport.rowList}" varStatus="rowStatus">
     <tr class="#{rowStatus.even?'even':'odd'}">
      <td>
          <h:panelGrid id="switchSelectionId" styleClass="choices">
                <input type="radio" name="switchTypeSelection" value="#{switchRow.rowId}" />
                <f:ajax event="click" execute="@this" render="@form" listener="#{designBean.showIGBTDetails}"/>
          </h:panelGrid>
      </td>
      <ui:repeat var="switchColValue" value="#{switchRow.rowValues}">
        <td>
             <h:outputText value="#{switchColValue}" /> 
        </td>
      </ui:repeat>
      </tr>
     </ui:repeat>
</tbody>
</table>
</h:form>
于 2012-07-04T01:57:24.367 に答える
0

この場合、クリックイベントが必要かどうかわかりません。onchange を使用してみてください。過去にこれについて言及したことを覚えています。ただし、すでに選択されているラジオ項目を複数回クリックすると、起動しません。

また、@form の代わりにフォームの id を使用してみましたか? render="summaryForm" のように。

于 2012-06-15T05:26:50.913 に答える