2012-07-11 113 views

回答

0

您可以通过路由到Visualforce下一个页面,传递要显示的参数值做到这一点。像这样的事情在顶点应该工作:

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用户确保重定向值设置为,否则的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> 
相关问题