visualforce页面呈现一个按钮

时间:2012-07-18 02:01:23

标签: salesforce visualforce

这是输出字段的代码。当字段为空时,按钮被渲染,当字段有值时,清除按钮将显示,并允许我清空字段并再次渲染按钮。但是一旦字段被清除,我无法管理它再次呈现按钮,有人可以建议修复吗?

<apex:pageBlockSectionItem >
  <apex:outputLabel value="Order:" for="callerorder"/>
  <apex:outputPanel id="callerorder">
    <apex:outputField value="{!newPhoneCallRecord.Order__c}" />
    <apex:commandButton value="x" rendered="{!!ISBLANK(newPhoneCallRecord.Order__c)}" rerender="phoneRecordSection">
      <apex:param name="orderRMV" value="" assignTo="{!newPhoneCallRecord.Order__c}"/> 
    </apex:commandButton>
  </apex:outputPanel>

1 个答案:

答案 0 :(得分:2)

鉴于您希望这是动态的,您应该使用javascript启用/禁用该按钮。通过利用onChange事件,您可以根据需要切换按钮的可见性。

也就是说,使用<apex:param>分配一个空值似乎是对这种情况有点左侧的看法。通过控制器清除此字段的更标准方法是在控制器上实现一个清晰的方法,如下所示:

public PageReference ClearOrder()
{
  newPhoneCallRecord.Order__c = "";
  return null;
}

然后从命令按钮调用此方法:

<apex:outputPanel id="callerorder">
  <apex:outputField value="{!newPhoneCallRecord.Order__c}" />
  <apex:commandButton value="x" rendered="{!!ISBLANK(newPhoneCallRecord.Order__c)}" rerender="phoneRecordSection" action="{!ClearOrder}"/>
</apex:outputPanel>