如何从另一个 Class 将值放入 Controller?
How to put value in Controller from another Class?
我想从另一个 class (Class A) 中的 VF Page 调用 PageReference,以便它可以生成 PDF 并设置为附件。 VF 页面正在从其控制器获取 ID。我想将 Class A 中的 ID 放到 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 文件,其中的信息是关于我在另一个 CLASS 中的联系人 ID,而不是 VF 页面中生成的那个。
你的问题不清楚。我所了解的是,您想从另一个 class 而不是 VF 页面的标准控制器访问联系人。
您可以通过在 visualforce 页面中添加引用 class A 的扩展控制器来实现。然后,在 DocuGenerate class 中,创建另一个接收 class 类型参数的构造函数。
<apex:page standardController="yourStandardController" extensions="A">
---
</apex:page>
据我所知,您想将联系人 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
}
}
}
我想从另一个 class (Class A) 中的 VF Page 调用 PageReference,以便它可以生成 PDF 并设置为附件。 VF 页面正在从其控制器获取 ID。我想将 Class A 中的 ID 放到 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 文件,其中的信息是关于我在另一个 CLASS 中的联系人 ID,而不是 VF 页面中生成的那个。
你的问题不清楚。我所了解的是,您想从另一个 class 而不是 VF 页面的标准控制器访问联系人。
您可以通过在 visualforce 页面中添加引用 class A 的扩展控制器来实现。然后,在 DocuGenerate class 中,创建另一个接收 class 类型参数的构造函数。
<apex:page standardController="yourStandardController" extensions="A">
---
</apex:page>
据我所知,您想将联系人 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
}
}
}