Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salesforce apex:未更新inputField绑定值_Salesforce_Apex Code_Visualforce - Fatal编程技术网

Salesforce apex:未更新inputField绑定值

Salesforce apex:未更新inputField绑定值,salesforce,apex-code,visualforce,Salesforce,Apex Code,Visualforce,我正在使用Apex控制器和视觉力页面。 在vf页面内部,我有一个数据表,该表的每一行都绑定到从控制器生成的列表中的一个值 示例代码: <apex:dataTable value="{!List}" var="item" styleClass="class1" > ... <apex:column headerValue="Header1"> <apex:outputpanel rendered="{!NOT((a=='true'))}">

我正在使用Apex控制器和视觉力页面。 在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>

...
...
如您所见,我试图根据某些条件隐藏一些输入字段

然而,有一个问题。如果我执行上述操作,则渲染的输入字段没有正确绑定。提交带有此数据表的表单后,在我的控制器中,列表
Name
中的所有记录都是
null
。尽管我在http请求中看到了“名称”

我猜渲染会干扰绑定吗?因为如果我删除重新提交的条件并显示所有
InputField
,我可以在提交表单后在控制器内获得值


知道发生了什么吗?

如果我没记错的话,页面上必须有一个apex标签才能重新提交

换句话说,某些东西(可能像
一样简单)必须是HTML格式,以便以后的AJAX更新将新内容注入占位符。如果未渲染,则将保持未渲染状态。(1)

尝试将条件移动到
style
styleclass
属性,而不是
rendered
。差不多

<apex:inputField value="{!item.Name}" 
    required="{!a=='false'}" 
    style="display:{!IF(a=='false','inline', 'none')}"/>


脚注:


(1) 当然,除非您将重新提交一个包含“this”标记(XML中更高的标记)。

谢谢!这正是我解决问题的方法。我通过css进行了显示/隐藏!