Daniel
Daniel

Reputation: 16226

create a child visual force page

I have a custom Object called "Gift_c" off the Contact record. I would like to replace the standard "Gift_c" page with a visualforce page so that I can selectively hide certain fields.

All is farily straightforward.

<apex:page standardController="Gift__c" showHeader="true"   >
<apex:form >      
<apex:pageBlock title="" mode="Edit">
    <apex:pageMessages />
    <apex:pageBlockButtons >
        <apex:commandButton value="Save" action="{!save}"/>
        <apex:commandButton value="Cancel" action="{!cancel}"/>               
    </apex:pageBlockButtons>
    <apex:pageBlockSection title="Basic Information" columns="1">
        <apex:inputField value="{!Gift__c.Contact__c}"/>
        <apex:inputField value="{!Gift__c.GiftAmount__c}"/>
    </apex:pageBlockSection>        
</apex:pageBlock>
</apex:form>

The Challenge:

Normally when you are on a Contact and I click the "New Gift" button and the Contact_c field from the Gift_c object is populated to be the person I just came from. How can I ensure that still happens on the new Visual Force Page

Upvotes: 0

Views: 1040

Answers (2)

Daniel
Daniel

Reputation: 16226

Actually this functionality comes out of the box as long as you override the "New/Edit" button to point to new page.

Override Button

Upvotes: 1

Daniel Blackhall
Daniel Blackhall

Reputation: 632

There is what is known as the lkid hack. It is an undocumented feature that the values for the parent are passed as GET parameters from the New button on a related list. So you could extract the parameters that way, but it is widely accepted that this is a very flimsy solution.

Or there is a very neat solution posted here: hack-to-find-field-ids-allows-a-default-ui-new-page-to-be-pre-populated

This solution is screen scraping the standard edit page for all the lkid values in the html of the page. There are just as many reasons why this could one day just stop working, but it is probably more robust than reverse engineering the get parameters.

Upvotes: 0

Related Questions