You need to sign in to do that
Don't have an account?
Scott Janis 19
VF page not showing up in lightining
I have a list button from the account record that called up this VF page. The works perfectrly in classic but the page doesn not load in lighteing. Why?
<apex:page standardController="Account" extensions="UploadAttachmentController">
<apex:sectionHeader title="{!Account.Name}" subtitle="Attach File"/>
<apex:form id="form_Upload">
<apex:pageBlock >
<apex:pageBlockButtons >
<apex:commandButton action="{!back}" value="Back to {!Account.Name}"/>
<apex:commandButton action="{!back}" value="Cancel"/>
</apex:pageBlockButtons>
<apex:pageMessages />
<apex:pageBlockSection columns="1">
<apex:pageBlockSectionItem >
<apex:outputLabel value="File" for="file_File"/>
<apex:inputFile id="file_File" value="{!fileBody}" filename="{!fileName}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Type" for="type"/>
<apex:selectList value="{!selectedType}" size="1" id="type">
<apex:selectOption itemValue="MSA" itemLabel="MSA"/>
<apex:selectOption itemValue="NDA" itemLabel="NDA"/>
</apex:selectList>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Description" for="description"/>
<apex:inputTextarea id="description" value="{!description}" rows="4" cols="50"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="" for="uploadBtn"/>
<apex:commandButton id="uploadBtn" value="Attach File" action="{!processUpload}" />
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
<apex:page standardController="Account" extensions="UploadAttachmentController">
<apex:sectionHeader title="{!Account.Name}" subtitle="Attach File"/>
<apex:form id="form_Upload">
<apex:pageBlock >
<apex:pageBlockButtons >
<apex:commandButton action="{!back}" value="Back to {!Account.Name}"/>
<apex:commandButton action="{!back}" value="Cancel"/>
</apex:pageBlockButtons>
<apex:pageMessages />
<apex:pageBlockSection columns="1">
<apex:pageBlockSectionItem >
<apex:outputLabel value="File" for="file_File"/>
<apex:inputFile id="file_File" value="{!fileBody}" filename="{!fileName}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Type" for="type"/>
<apex:selectList value="{!selectedType}" size="1" id="type">
<apex:selectOption itemValue="MSA" itemLabel="MSA"/>
<apex:selectOption itemValue="NDA" itemLabel="NDA"/>
</apex:selectList>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Description" for="description"/>
<apex:inputTextarea id="description" value="{!description}" rows="4" cols="50"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="" for="uploadBtn"/>
<apex:commandButton id="uploadBtn" value="Attach File" action="{!processUpload}" />
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Could you post the code of apex class ?
public String selectedType {get;set;}
public Boolean selectedAwesomeness {get;set;}
public String description {get;set;}
private Account Account {get;set;}
public String fileName {get;set;}
public Blob fileBody {get;set;}
public UploadAttachmentController(ApexPages.StandardController controller) {
this.account = (Account)controller.getRecord();
}
// creates a new Account_Attachment__c record
private Database.SaveResult saveCustomAttachment() {
Account_Attachment__c obj = new Account_Attachment__c();
obj.Account__c = Account.Id;
obj.Description__c = Description;
obj.Type_of_Document_of_File__c = selectedType;
// fill out cust obj fields
return Database.insert(obj);
}
// create an actual Attachment record with the Account_Attachment__c as parent
private Database.SaveResult saveStandardAttachment(Id parentId) {
Database.SaveResult result;
Attachment attachment = new Attachment();
attachment.body = this.fileBody;
attachment.name = this.fileName;
attachment.parentId = parentId;
// inser the attahcment
result = Database.insert(attachment);
// reset the file for the view state
fileBody = Blob.valueOf(' ');
return result;
}
/**
* Upload process is:
* 1. Insert new Account_Attachment__c record
* 2. Insert new Attachment with the new Account_Attachment__c record as parent
* 3. Update the Account_Attachment__c record with the ID of the new Attachment
**/
public PageReference processUpload() {
try {
Database.SaveResult customAttachmentResult = saveCustomAttachment();
if (customAttachmentResult == null || !customAttachmentResult.isSuccess()) {
ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,
'Could not save attachment.'));
return null;
}
Database.SaveResult attachmentResult = saveStandardAttachment(customAttachmentResult.getId());
if (attachmentResult == null || !attachmentResult.isSuccess()) {
ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,
'Could not save attachment.'));
return null;
} else {
// the custom attachment record with some attachment info
Account_Attachment__c customAttachment = [select id from Account_Attachment__c where id = :customAttachmentResult.getId()];
customAttachment.Name = this.fileName;
customAttachment.Attachment__c = attachmentResult.getid();
update customAttachment;
}
} catch (Exception e) {
ApexPages.AddMessages(e);
return null;
}
return new PageReference('/'+Account.Id);
}
public PageReference back() {
return new PageReference('/'+Account.Id);
}
}
public String selectedType {get;set;}
public Boolean selectedAwesomeness {get;set;}
public String description {get;set;}
private Account Account {get;set;}
public String fileName {get;set;}
public Blob fileBody {get;set;}
public UploadAttachmentController(ApexPages.StandardController controller) {
this.account = (Account)controller.getRecord();
}
// creates a new Account_Attachment__c record
private Database.SaveResult saveCustomAttachment() {
Account_Attachment__c obj = new Account_Attachment__c();
obj.Account__c = Account.Id;
obj.Description__c = Description;
obj.Type_of_Document_of_File__c = selectedType;
// fill out cust obj fields
return Database.insert(obj);
}
// create an actual Attachment record with the Account_Attachment__c as parent
private Database.SaveResult saveStandardAttachment(Id parentId) {
Database.SaveResult result;
Attachment attachment = new Attachment();
attachment.body = this.fileBody;
attachment.name = this.fileName;
attachment.parentId = parentId;
// inser the attahcment
result = Database.insert(attachment);
// reset the file for the view state
fileBody = Blob.valueOf(' ');
return result;
}
/**
* Upload process is:
* 1. Insert new Account_Attachment__c record
* 2. Insert new Attachment with the new Account_Attachment__c record as parent
* 3. Update the Account_Attachment__c record with the ID of the new Attachment
**/
public PageReference processUpload() {
try {
Database.SaveResult customAttachmentResult = saveCustomAttachment();
if (customAttachmentResult == null || !customAttachmentResult.isSuccess()) {
ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,
'Could not save attachment.'));
return null;
}
Database.SaveResult attachmentResult = saveStandardAttachment(customAttachmentResult.getId());
if (attachmentResult == null || !attachmentResult.isSuccess()) {
ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,
'Could not save attachment.'));
return null;
} else {
// the custom attachment record with some attachment info
Account_Attachment__c customAttachment = [select id from Account_Attachment__c where id = :customAttachmentResult.getId()];
customAttachment.Name = this.fileName;
customAttachment.Attachment__c = attachmentResult.getid();
update customAttachment;
}
} catch (Exception e) {
ApexPages.AddMessages(e);
return null;
}
return new PageReference('/'+Account.Id);
}
public PageReference back() {
return new PageReference('/'+Account.Id);
}
}
Could you post the url that you are using?
It will be help debugging the issue.
i used the same way to redirect the button usign URLFor like you did , it is working in my org.
Could you post screenshot of where you are using this list button?
So please change to below This will work fine.
Hope this helps!