vf ページのテキスト ボックスに指定された 2 つの数値を追加したいと考えています。最初のページのボタン (追加ボタン) をクリックして、別の vf ページに結果を印刷したい。
そのために私を助けてください....
ありがとう、
vf ページのテキスト ボックスに指定された 2 つの数値を追加したいと考えています。最初のページのボタン (追加ボタン) をクリックして、別の vf ページに結果を印刷したい。
そのために私を助けてください....
ありがとう、
これを行うには、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}"/>
両方のページで同じコントローラーを使用してみてください。そうすれば、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>