如何使用visualforce页面中的复选框隐藏一部分字段?
答案 0 :(得分:0)
我只是使用Javascript,或者更好的是jQuery。
答案 1 :(得分:0)
假设采用Salesforce方法(保持页面权重等),您可以执行以下操作:
<apex:inputCheckbox value="{!theBool}">
<apex:actionSupport event="onChange" action="{!myAction}" rerender="theFieldsPanel"/>
</apex>
<apex:outputPanel id="theFieldsPanel">
<apex:variable var="v" value="" rendered="{!theBool}">
<apex:inputField value="{!someField"} rendered/>
<!-- more fields etc. -->
</apex:variable>
</apex:outputPanel>
请注意,我不在输出面板本身使用rendered
属性,这是因为如果它没有呈现,那么它在页面中不存在,因此,不会产生好rerender
目标!现在您只需要在控制器上执行一个简单的操作(如果需要,您可以在此处执行任何其他逻辑):
public Pagereference myAction()
{
// any logic etc. goes here
return null;
}
与javascript相反,以这种方式执行操作的好处是,您可以确保如果字段被隐藏,那么值将不会被发送回控制器以获取它们所绑定的变量。简单地用javascript隐藏东西不会产生相同的效果,所以说用户在其中一个字段中键入内容然后隐藏它们,无论他/她输入什么,它仍然会在相关的控制器变量中结束。