我正在使用Apex 控制器和 Visual Force 页面。在 vf 页面内部,我有一个数据表,该表的每一行都绑定到从控制器示例代码生成的列表中的一个值:
<apex:dataTable value="{!List}" var="item" styleClass="class1" >
...
<apex:column headerValue="Header1">
<apex:outputpanel rendered="{!NOT((a=='true'))}">
<div class='estimate-name-column'>
<apex:inputField value="{!item.Name}" required='true' rendered="{!(a=='false')}"/>
</div>
</apex:outputpanel>
</apex:column>
...
</apex:datatable>
如您所见,我试图根据某些条件隐藏一些输入字段。
但是,出现了一个问题。如果我执行上述操作,那些被渲染的 inputFields 没有正确绑定。提交带有此数据表的表单后,在我的控制器内,列表中的所有记录Name
都是null
. 即使我看到“名称”是在 http 请求中发布的。
我猜是渲染干扰绑定?因为如果我删除重新渲染的条件并显示所有InputField
我可以在提交表单后获取控制器内的值
任何想法发生了什么?