0

これが出力フィールドの私のコードです。フィールドが空の場合、ボタンがレンダリングされます。フィールドに値がある場合、クリアボタンが表示され、フィールドを空にしてボタンを再度レンダリングできます。しかし、フィールドがクリアされた後、ボタンを再度レンダリングするように管理することはできません。誰かが修正を提案できますか?

<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>
4

1 に答える 1

3

リー、

これを動的にしたい場合は、JavaScriptでボタンを有効/無効にする必要があります。イベントを活用するonChangeことで、必要に応じてボタンの表示を切り替えることができます。

とは言うものの、を使用して空の値を割り当てること<apex:param>は、状況をやや左翼手に取っているようです。コントローラを介してこのフィールドをクリアするためのより標準的な方法は、次のようにコントローラにclearメソッドを実装することです。

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>
于 2012-07-18T02:13:23.003 に答える