首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从另一个类中对控制器进行价值评估?

如何从另一个类中对控制器进行价值评估?
EN

Stack Overflow用户
提问于 2019-10-15 00:08:42
回答 2查看 1.6K关注 0票数 0

我想在另一个类(A类)中从VF调用PageReference,这样它就可以生成一个PDF并设置为附件。VF页面正在从其控制器获取ID。我想把ID从A类到VF页面,这样它就会被使用,而不是控制器。

VF页面名称: ContactDocument

代码语言:javascript
复制
public class DocuGenerate {
    public Contact ccc {get;set;} 

    public CaseClosureDocumentController(ApexPages.StandardController controller)
    {
        ccc = (Contact) controller.getRecord();
        ccc = [SELECT ID, NAME FROM CONTACT WHERE ID =: ccc.id];

        //GENERATE A PDF WITH THE ID RETRIEVED.
    }
}


public class SendEmail {
    public static void SendMessage() {
        List<Contact> con = [SELECT ID FROM CONTACT LIMIT 1];
        for(Contact c : con){
            Pagereference vfpage1 = Page.ContactDocument;
            //HOW WILL I PASS CON.ID TO VF PAGE SO THAT IT WILL BE THE ONE TO PROCESS, NOT THE ONE IN VFPAGE?
        }
    }
}

期望:生成一个PDF文件,其中的信息是关于我在另一个类中的联系人ID,而不是在VF页面中生成的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-15 07:22:41

根据我所能看出的,您希望将联系人的Id从页面的控制器立即发送到PDF呈现页面.您可以通过页面引用和URL参数来完成此操作。向页面引用添加参数意味着该页的任何控制器(标准或扩展)都可以获得该id并使用该记录。下面是如何向页面引用中添加参数.

代码语言:javascript
复制
public class SendEmail {
   public static void SendMessage() {
     List<Contact> con = [SELECT ID FROM CONTACT LIMIT 1];
     for(Contact c : con){
       Pagereference vfpage1 = Page.ContactDocument;
       vfpage1.getParameters().put('id', c.id);
       return vfpage1; //You probably need to return the page reference 
                       //in order to redirect to it
     }
   }
}
票数 0
EN

Stack Overflow用户

发布于 2019-10-15 06:38:01

你的问题还不清楚。我所理解的是,您希望访问来自另一个类的联系人,而不是VF页面的标准控制器。

您可以通过在visualforce页面中添加引用类A类的扩展控制器来实现这一点。然后,在DocuGenerate类中,创建另一个构造函数,该构造函数接收A类型参数。

代码语言:javascript
复制
<apex:page standardController="yourStandardController" extensions="A">
---
</apex:page>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58385512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档