当前位置: 首页 > 知识库问答 >
问题:

f:ajax在ui:repeat内的h:selectOneRadio未按预期工作

方砚
2023-03-14

我正在使用渲染一个表,其中有一个单选按钮。i、 例如,在选择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>

共有2个答案

厉高逸
2023-03-14

经过一些研究,我找到了一种简单的方法来实现这一点,这是我的答案,而不是使用h: selectOneRadio,将其更改为超文本标记语言,并将其包装在一个,现在点击panelGrid组件调用ajax函数/监听器。

<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>
云昊阳
2023-03-14

我不知道在这种情况下你是否需要点击事件。尝试使用onchange。我记得以前有人提到过这一点。但是,如果您在已选择的无线电项目上单击多次,它将不会激发。

另外,您是否尝试使用表单的id而不是@form?像渲染="总结形式"。

 类似资料:
  • 我的JSF页面是这样的,

  • 基本上,我正在尝试做的是将request.getParameterMap()方法返回的映射的内容转储到输出。 我将得到以下奇怪的映射作为输出(我认为其值是字符串或字符串数组的对象引用的地址) 我试过下面的代码-- 如何遵从那些对象引用或者让我这样说;我是不是漏了什么?

  • 我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它

  • 当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。

  • 我试图使用来传输我根据前面的问题设置的自定义标头。 我在文件中读到... 我的属性包括: