我想在另一个类(A类)中从VF调用PageReference,这样它就可以生成一个PDF并设置为附件。VF页面正在从其控制器获取ID。我想把ID从A类到VF页面,这样它就会被使用,而不是控制器。
VF页面名称: ContactDocument
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页面中生成的。
发布于 2019-10-15 07:22:41
根据我所能看出的,您希望将联系人的Id从页面的控制器立即发送到PDF呈现页面.您可以通过页面引用和URL参数来完成此操作。向页面引用添加参数意味着该页的任何控制器(标准或扩展)都可以获得该id并使用该记录。下面是如何向页面引用中添加参数.
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
}
}
}发布于 2019-10-15 06:38:01
你的问题还不清楚。我所理解的是,您希望访问来自另一个类的联系人,而不是VF页面的标准控制器。
您可以通过在visualforce页面中添加引用类A类的扩展控制器来实现这一点。然后,在DocuGenerate类中,创建另一个构造函数,该构造函数接收类A类型参数。
<apex:page standardController="yourStandardController" extensions="A">
---
</apex:page>https://stackoverflow.com/questions/58385512
复制相似问题