Salesforce 控制嵌入式VisualForce页面的显示

Salesforce 控制嵌入式VisualForce页面的显示,salesforce,visualforce,Salesforce,Visualforce,我有一个客户,他有一个自定义visualforce页面,通过页面布局嵌入到标准Lead页面中。他们想做的是根据Lead对象中的各种条件有条件地显示此嵌入页面。我已经能够使用一个主页组件实现这一点,该组件使用javascript根据在屏幕上找到的特定条件查找和隐藏嵌入内容。关于这项技术,我有几个问题: 有没有更好的方法来实现这一点? 如果Salesforce决定以此为基础创建AppExchange产品,他们将如何看待这一点? 谢谢我认为这是不可能的。您可以使用自定义Visualforce页面覆盖标

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

有没有更好的方法来实现这一点? 如果Salesforce决定以此为基础创建AppExchange产品,他们将如何看待这一点?
谢谢

我认为这是不可能的。您可以使用自定义Visualforce页面覆盖标准salesforce lead页面。在自定义visualforce页面中,您必须定义一个标准控制器,例如standardController=Lead,然后使用apex标记apex:detail输出Lead对象的数据,这样您就可以创建一个具有标准salesforce外观和感觉的自定义页面,您可以自己控制


Infos:和

如果有人在搜索此问题的答案,我将发布我是如何解决的-我使用了一个主页组件,并将其添加到狭窄的组件中以显示。我还选择了在用户界面的所有页面上显示自定义边栏组件。这允许我在每个页面上嵌入一点javascript。接下来,我将我的vf页面添加到了Lead的页面布局中。然后,我查找该节标题,如果找到,则调用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是否反对这种做法,或者它是否会影响应用程序交换中的包含。

另一种方法是简单地使用其他记录类型,每个记录类型都有自己的默认页面布局。在分配给新记录类型的新页面布局中包括VF元素。然后,根据lead上的条件/过滤器,WF规则更新记录类型,从而更改包含VF元素的页面布局。非常简单的方法,有条件地在满足特定条件的Lead/records上显示VF。我们为客户机这样做,本质上是为每个现有的记录类型和页面布局创建一个新的记录类型,他们必须为某些标记为有风险的记录显示一个可视流程,这可能是您可以使用的。我没有使用它,但它似乎符合您的标准。您的自定义VF页面不能使用apex:outputPanel来选择性地呈现其全部内容吗?当然可以,但VF面板仍会占用潜在客户页的空间。所以我们最终会得到一个空白区域。