0

vf ページのテキスト ボックスに指定された 2 つの数値を追加したいと考えています。最初のページのボタン (追加ボタン) をクリックして、別の vf ページに結果を印刷したい。

そのために私を助けてください....

ありがとう、

4

2 に答える 2

0

これを行うには、Visualforceの次のページにルーティングし、表示する値をパラメーターとして渡します。Apexでこのようなものが機能するはずです:

PageReference gotoPage()
{
   PageReference pr = Page.YourSecondVFPage;
   pr.getParameters().put('secondnumber', '' + this.secondNumber);
   pr.setRedirect(true);
   return pr;
}

次に、Visualforceで:

<apex:commandButton value="Go!" action="{!gotoPage}"/>
于 2012-07-11T16:23:50.583 に答える
0

両方のページで同じコントローラーを使用してみてください。そうすれば、url パラメーターとして維持するフィールドがいくつかあると仮定するか、必要がない場合はデータをどこかに保存する必要があると仮定して、そのすべてのデータを渡す必要はありません。

両方のページが同じコントローラーを使用していて、PageReference を使用してユーザーをリダイレクトする場合は、リダイレクト値をfalseに設定してください。そうしないと、Salesforce は新しい要求として処理し、コントローラーの新しいインスタンスでページを開始します。

以下のサンプル コードでは、ユーザーがテキストをフィールドに入力し、印刷ビューをクリックすると、同じ情報を使用して PDF がレンダリングされます。データベースにデータが保存されませんでした。

コントローラ

public with sharing class MyController {

public string MyData {get;set;}

public MyController() {
    MyData = '';    
}

public PageReference printView() {
    PageReference oPageRef = Page.MyPage2;
    oPageRef.setRedirect(false);

    return oPageRef;
}
}

ページ1:

<apex:page controller="MyController">
<apex:sectionheader title="Test" subtitle="My Page"/>

<apex:form id="formData">
    <apex:pageBlock title="My Data">
        <apex:pageBlockButtons >
            <apex:commandButton value="Printable View" action="{!printView}" />
        </apex:pageBlockButtons>

        <apex:pageBlockSection >
            <apex:pageBlockSectionItem >
                <apex:outputLabel value="My Data"/>
                <apex:inputTextArea value="{!MyData}" />
            </apex:pageBlockSectionItem>
        </apex:pageBlockSection>
    </apex:pageBlock>
</apex:form>
</apex:page>

ページ2:

<apex:page controller="MyController"
renderAs="pdf">

{!MyData}
</apex:page>
于 2012-07-11T23:07:59.923 に答える