控制嵌入式VisualForce页面的显示

时间:2012-10-02 15:15:28

标签: salesforce visualforce

我的客户端有一个自定义的visualforce页面,它通过页面布局嵌入到标准的Lead页面中。他们想要做的是根据Lead对象中的各种标准有条件地显示此嵌入页面。我已经能够使用主页组件实现这一点,该主页组件使用javascript根据它在屏幕上找到的某些条件查找和隐藏嵌入的内容。我对这项技术有几个问题:

  1. 有没有更好的方法来实现这个目标?
  2. 如果Salesforce决定使用此方法创建AppExchange产品,Salesforce将如何看待这个?
  3. 由于

3 个答案:

答案 0 :(得分:0)

我认为不可能。您可以做的是使用自定义Visualforce页面覆盖标准salesforce主页。在您的自定义visualforce页面中,您必须定义标准控制器,例如。 standardController="Lead"然后使用顶点标记apex:detail输出您的Lead对象的数据所以您可以创建一个标准salesforce外观的自定义页面,并且您可以自己控制。

信息:apex:detailOverriding a Standard Page

答案 1 :(得分:0)

如果有人正在寻找答案,我会发布我的解决方法 - 我使用了主页组件并将其添加到“Narrow Components to show”中。我还在用户界面中选择了“在所有页面上显示自定义边栏组件”。这允许我在每个页面上嵌入一些小的javascript。接下来,我将一个部分内的vf页面添加到Leads的页面布局中(例如)。然后我查找了这个节头,如果找到则调用twistSection()

这是一个片段:

Elements = document.getElementsByTagName('img');            
for (var i=Elements.length; i>0; i--) {                
if (Elements[i] != null) {
     if (Elements[i].attributes['alt'].value == 'Show Section - My Custom Panel') {
         twistSection(Elements[i]);
     }
}                   

}

我从未发现Salesforce是否对这种做法不满意,或者是否会影响App Exchange中的包含。

答案 2 :(得分:0)

另一种方法是简单地使用其他记录类型,每种类型都有自己的默认页面布局。在分配给新记录类型的新页面布局中包含VF元素。然后,根据引导条件/过滤器,WF规则更新记录类型,从而更改包含VF元素的页面布局。在有条件地在符合特定标准的潜在客户/记录上显示VF的非常简单的方法。我们正在为客户端执行此操作,实际上为每个现有记录类型和页面布局创建新记录类型,他们必须为标记为“At-Risk”的某些记录显示Visual Flow