I am trying construct a dynamic table.
Most of the data is Outputtext and I am able to print that. I am facing difficulty in reading user input values. There are two rows in the below table that require input from users. I am able to generate table with two rows that can accept input from users, but unable to pass those value to Controller in order to perform operations once I get the data from users.
Can anyone help me suggesting the best value to pass values from Apex:Inputtext within Apex:repeat to controller?
Any suggestion would be a great help.
<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>
You need to put a <apex:form>
around the <apex:repeat>
.
Your code then would look like this:
<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>