2012-07-11 2 views
0

vf 페이지 텍스트 상자에 주어진 두 개의 숫자를 추가하고 싶습니다. 첫 페이지의 버튼 (버튼 추가)을 클릭하여 다른 vf 페이지로 결과를 인쇄하고 싶습니다. 당신은없이 VisualForce에서 다음 페이지로 라우팅 및 매개 변수로 표시 할 값을 전달하여이 작업을 수행 할 수 있습니다다른 Visualforce 페이지에서 하나의 Visualforce 페이지를 연결하는 방법은 무엇입니까?

답변

0

그렇게 제발 도와주세요 ....

감사합니다. 에이펙스에서 이런 식으로 뭔가 작업을해야합니다 :

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

을 다음없이 VisualForce에 :

<apex:commandButton value="Go!" action="{!gotoPage}"/> 
0

나는 당신이 두 페이지에 동일한 컨트롤러를 사용하여 시도 할 수 있습니다 생각합니다. 그렇게하면 모든 데이터를 전달할 필요가 없습니다. 유지할 필드가 두 개 이상이거나 URL 매개 변수가 있거나 필요하지 않은 경우 어딘가에 데이터를 저장해야한다고 가정합니다.

두 페이지가 동일한 컨트롤러를 사용하고 당신이 PageReference를 사용하여 사용자를 리디렉션 할 때 새로운 요청으로, 그렇지 않으면 거짓에 세일즈 포스 취급을 리디렉션 값을 설정해야합니다과의 새로운 인스턴스 페이지를 시작하는 경우 제어 장치.

아래 예제 코드는 사용자가 필드에 텍스트를 입력 한 다음 인쇄보기를 클릭하면 동일한 정보를 사용하여 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> 
관련 문제