如何使用另一个VF页面中的按钮调用带有参数的Vf页面

时间:2012-01-23 06:11:46

标签: salesforce visualforce

我在VF页面上有按钮,用于打印VF页面。 这个页面是一个搜索结果,所以对于打印我生成一个非常相似的页面,除了它将被呈现为pdf。所以我想将当前Vf页面中输入的搜索条件传递给printVF页面。

如何将变量从一个VF页面传递到另一个

1 个答案:

答案 0 :(得分:1)

您可以让按钮调用一个操作,返回对新页面的页面引用:

<!-- in page -->
<apex:commandButton action="{!PrintPage}" value="Print"/>

然后在您的控制器中,您可以创建页面引用并添加所需的任何参数:

// in controller
public Pagereference PrintPage()
{
    Pagereference pr = Page.ThePrintPage;
    pr.setRedirect(true);
    pr.getParameters().put('searchFilter1', 'someValue');
    pr.getParameters().put('searchFilter2', 'someOtherValue');
    return pr;
}

然后在另一个页面的控制器中,您可以阅读这些参数并在查询中使用它们:

string strFilter1 = ApexPgaes.currentPage().getParameters().get('searchFilter1');

如果页面非常相似,您可能只想使用绑定变量切换页面标记中的renderAs参数,并让您的操作只是切换它 - 您可能想要关闭它的可见性其他页面也是如此,但它会节省你再次进行查询等等。当然,如果你确实需要两个页面,你总是可以通过在包含所有公共代码的第三个类中执行搜索逻辑来简化事情。