1

現在、カスタム拡張機能を備えた Apex フォームを使用して、salesforce.com でフォームを開発しています。

フォーム自体は、スロット数が最大のツアーを予約するように設計されています。フォームが送信されたら、フォームで選択された日時に利用可能なスロットがまだあることを確認する必要があります (フォームの読み込みと送信の間に予約されていないため)。

PageReference save() が呼び出されたときに、カスタム コントローラが送信されたフォーム データを受信するのに問題があります。

私が持っているとしましょう...

<apex:form>
<apex:pageBlock>
    <apex:inputField value="{!customObject__c.Date__c}"/>
    <apex:inputField value="{!customObject__c".Time__c}"/>
    <apex:commandButton value="{!save}"/>
</apex:pageBlock>
</apex:form>

私のカスタマーエクステンションフレームは

public class myExtension {

    public myExtension(ApexPages.StandardController controller) {

    }

    public PageReference save(){
       return null;
    }

}

既存のデータベース オブジェクトに対してクエリを実行できるように、inputField の値に save() でアクセスするにはどうすればよいでしょうか?

これがどのように達成されるか、または達成されたかの例は素晴らしいでしょう。

4

1 に答える 1

2

視覚力のマークアップが正しくありません。メソッドでアクション プロパティを設定する必要があり、value 属性は保存テキストになります。

<apex:form>
    <apex:pageBlock>
        <apex:inputField value="{!customObject__c.Date__c}"/>
        <apex:inputField value="{!customObject__c".Time__c}"/>
        <apex:commandButton value="Save" action="{!save}"/>
    </apex:pageBlock>
</apex:form>

しかし、上記が単なるタイプミスであると仮定すると、標準コントローラーによって渡されたオブジェクトへの参照が必要です。

public class myExtension {
    private CustomObject__c customObject;

    public myExtension(ApexPages.StandardController controller) {
        customObject = (CustomObject__c) controller.getRecord();
    }

    public PageReference save(){
        //You can now access the customObject and it will contain the 
        //data input by the user
        customObject.Name = ''; //Access properties on the object

        update customObject;
       return null;
    }
}
于 2012-05-11T18:28:59.637 に答える