The command button on my Visualforce page is not saving edits to the record. Any help is appreciated!
Visualforce Pg:
<apex:page action="{!redirectToPartnerships}" extensions="EditExtensions"
standardController="PartnershipRequest__c">
<apex:form >
<apex:pageBlock title="Research Request Edit">
<!--<apex:commandButton value="Save" action="{!save}"/>
<apex:commandButton value="Cancel" action="{!cancel}"/> -->
<apex:pageBlockSection title="Request Overview (Completed by
Requestor)">
<apex:inputField value="{!requestRecord.Name}"/>
<apex:repeat value="{!fields}" var="f">
<apex:inputField value="{!requestRecord[f.fieldPath]}"
required="{!OR(f.required, f.dbrequired)}"/>
</apex:repeat>
</apex:pageBlockSection>
<apex:pageBlockButtons >
<apex:commandButton action="{!Save}" value="Save" />
<apex:commandButton action="{!Cancel}" value="Cancel" />
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>
Apex Class:
public class EditExtensions {
public string getRequestId { get; set; }
public PartnershipRequest__c requestRecord { get; set; }
public pageReference redirectReference;
public yc_PartnershipEditExtensions(ApexPages.StandardController controller) {
requestRecord = (PartnershipRequest__c) controller.getRecord();
this.getRequestId = ApexPages.CurrentPage().getparameters().get('Id');
this.requestRecord = getRequest();
this.redirectReference = null;
// requestRecord = [select DataTool__c, Agency__c, Client__c,
Description__c, DesiredDueDate__c, PriorityRanking__c, ImpactCategory__c
from PartnershipRequest__c where id=:getRequestId];
}
private PartnershipRequest__c getRequest() {
String query = 'SELECT ';
for (Schema.FieldSetMember f : this.getFields()) {
query += f.getFieldPath() + ', ';
}
query += 'Id, Name FROM PartnershipRequest__c WHERE id=:getRequestId';
//query += this.getRequestId;
System.debug(Database.query(query));
return Database.query(query);
}
public List<Schema.FieldSetMember> getFields() {
Map<String, Schema.RecordTypeInfo> recordTypeMap =
Schema.SObjectType.PartnershipRequest__c.getRecordTypeInfosByName();
System.debug('reqrec' + this.requestRecord);
if (this.requestRecord.RecordTypeId == recordTypeMap.get('General Request').getRecordTypeId()) {
//general request
return SObjectType.PartnershipRequest__c.FieldSets.General_Request.getFields();
} else if (this.requestRecord.RecordTypeId ==
recordTypeMap.get('Troubleshooting Data Vendors').getRecordTypeId()) {
//troubleshooting data vendors
return
SObjectType.PartnershipRequest__c.FieldSets.Troubleshooting_Data_Vendors.getFields();
} else if (this.requestRecord.RecordTypeId ==
recordTypeMap.get('Sandbox').getRecordTypeId()) {
//sandbox
return SObjectType.PartnershipRequest__c.FieldSets.Sandbox.getFields();
} else if (this.requestRecord.RecordTypeId == recordTypeMap.get('Partnerships').getRecordTypeId()) {
//if field type is partnerships, use existing VF pages for Create / Edit / View (making the return below invalid. There are no field sets being used here.)
//return
SObjectType.PartnershipRequest__c.FieldSets.Partnerships.getFields();
System.Debug('is this working?');
//redirectReference = redirectToPartnerships();
return SObjectType.PartnershipRequest__c.FieldSets.Troubleshooting_Data_Vendors.getFields();
}
//System.debug(this.requestRecord.RecordTypeId);
return SObjectType.PartnershipRequest__c.FieldSets.Troubleshooting_Data_Vendors.getFields();
}
public PageReference redirectToPartnerships() {
Map<String, Schema.RecordTypeInfo> recordTypeMap =
Schema.SObjectType.PartnershipRequest__c.getRecordTypeInfosByName();
if (this.requestRecord.RecordTypeId ==
recordTypeMap.get('Partnerships').getRecordTypeId()) {
system.debug('redirect to partnerships');
PageReference redirectRef = new
PageReference('https://c.cs21.visual.force.com/apex/PartnershipRequest_EditVF?
id=' + this.getRequestId);
redirectRef.setRedirect(true);
return redirectRef;
}
return null;
}
}
<apex:pageMessages/>tag to your page? It should surface any errors that might be thrown by the standard controller