创建一个子visualforce页面

时间:2012-09-24 18:04:50

标签: salesforce visualforce

我在联系人记录中有一个名为“Gift_ c”的自定义对象。我想用visualforce页面替换标准的“Gift _c”页面,以便我可以有选择地隐藏某些字段。

一切都非常简单。

<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>

挑战:

通常情况下,当您使用联系人时,我点击“新礼物”按钮,并且礼物 _c对象中的Contact_ c字段将填充为我刚来的人。我怎样才能确保在新的Visual Force Page

上仍然发生

2 个答案:

答案 0 :(得分:1)

实际上,只要您覆盖“新建/编辑”按钮以指向新页面,此功能就会开箱即用。

Override Button

答案 1 :(得分:0)

有一种所谓的lkid hack。这是一个未记录的功能,父级的值将作为GET参数从相关列表上的“新建”按钮传递。所以你可以用这种方式提取参数,但人们普遍认为这是一个非常脆弱的解决方案。

或者在这里发布了一个非常简洁的解决方案:hack-to-find-field-ids-allows-a-default-ui-new-page-to-be-pre-populated

此解决方案是屏幕抓取页面html中所有lkid值的标准编辑页面。有一天,为什么有一天会停止工作的原因有很多,但它可能比反向设计获取参数更有效。