尝试在 Apex 重复中捕获 Apex:InputText

Trying to capture Apex:InputText within Apex repeat

我正在尝试构建动态 table。

大部分数据是 Outputtext,我可以打印出来。我在读取用户输入值时遇到困难。下面 table 中有两行需要用户输入。我能够生成 table 两行可以接受用户的输入,但无法将这些值传递给 Controller 以便在我从用户那里获取数据后执行操作。

任何人都可以帮我建议将 Apex:repeat 内的 Apex:Inputtext 的值传递给控制器​​的最佳值吗?

任何建议都会有很大的帮助。

<apex:repeat value="{!tList}" var="tvar" id="t4">
    <tr id="slxtableData">
        <td>{!tvar.ftypename}</td>
        <td><apex:outputText value="{0, number, 00.00}"
                rendered="{!NOT(tvar.editable)}"><apex:param value="{!tvar.a}"/></apex:outputText>
            <apex:inputText id="ipVar1" value="{!tvar.a}" style="text-align: right;"
                rendered="{!tvar.editable}" label="{!tvar.a}"/></td>
        <td><apex:outputPanel layout="NONE"
                rendered="{!NOT(tvar.editable)}">{!tvar.b}</apex:outputPanel>
            <apex:inputText id="ipVar2" value="{!tvar.b}" style="text-align: right;" 
                rendered="{!tvar.editable}" label="{!tvar.b}"/></td>
        <td><apex:outputPanel layout="NONE"
                rendered="{!NOT(tvar.editable)}">{!tvar.c}</apex:outputPanel>
            <apex:inputText id="ipVar3" value="{!tvar.c}" style="text-align: right;"
                rendered="{!tvar.editable}" label="{!tvar.c}"/></td>
        <td><apex:outputPanel layout="NONE"
                rendered="{!NOT(tvar.editable)}">{!tvar.d}</apex:outputPanel>
            <apex:inputText id="ipVar4" value="{!tvar.d}" style="text-align: right;"
                rendered="{!tvar.editable}" label="{!tvar.d}"/></td>
    </tr>
</apex:repeat>

您需要在 <apex:repeat> 周围加上 <apex:form>

您的代码将如下所示:

<apex:form>
<apex:repeat value="{!tList}" var="tvar" id="t4">
    <tr id="slxtableData">
        <td>{!tvar.ftypename}</td>
        <td><apex:outputText value="{0, number, 00.00}"
                rendered="{!NOT(tvar.editable)}"><apex:param value="{!tvar.a}"/></apex:outputText>
            <apex:inputText id="ipVar1" value="{!tvar.a}" style="text-align: right;"
                rendered="{!tvar.editable}" label="{!tvar.a}"/></td>
        <td><apex:outputPanel layout="NONE"
                rendered="{!NOT(tvar.editable)}">{!tvar.b}</apex:outputPanel>
            <apex:inputText id="ipVar2" value="{!tvar.b}" style="text-align: right;" 
                rendered="{!tvar.editable}" label="{!tvar.b}"/></td>
        <td><apex:outputPanel layout="NONE"
                rendered="{!NOT(tvar.editable)}">{!tvar.c}</apex:outputPanel>
            <apex:inputText id="ipVar3" value="{!tvar.c}" style="text-align: right;"
                rendered="{!tvar.editable}" label="{!tvar.c}"/></td>
        <td><apex:outputPanel layout="NONE"
                rendered="{!NOT(tvar.editable)}">{!tvar.d}</apex:outputPanel>
            <apex:inputText id="ipVar4" value="{!tvar.d}" style="text-align: right;"
                rendered="{!tvar.editable}" label="{!tvar.d}"/></td>
    </tr>
</apex:repeat>
</apex:form>