0

这是设置。我有一个带有自定义按钮的标准页面布局。

当用户单击按钮时,我想检查扩展类中的值。如果值为 null 或 0 - 我希望显示页面消息,否则我想将它们重定向到另一个VF页面。

尝试这样做的方法是在页面布局上放置一个 VF 部分,并使用 action:support 方法有条件地呈现它,但我无法让它工作..

停!

4

2 回答 2

0

You do not need to add a VF page to the layout.
Try to use the Salesforce AJAX Toolkit for your custom button:

1) First create a WebService to calculate your value:

global with sharing class yourController{
    WebService static Integer calculateValue(Integer i) { 
        Integer result = i + 5;
        return result; 
    }
}

2) Then create a custom button for your object:
Display Type - Detail Page Button
Behavior - Execute JavaScript
Content Source - onClick JavaScript

3) Then add this code to the button:

// Loading the ajax toolkit data
{!REQUIRESCRIPT("/soap/ajax/20.0/connection.js")}
{!REQUIRESCRIPT("/soap/ajax/10.0/apex.js")}

// Making a call to the webservice method
var value = sforce.apex.execute("yourController","calculateValue", {i:5});

// If the value is 0 or blank            
if(value == 0 || value == ''){
    // Pop up a message
    alert('Your message text here');
else{
    // Otherwise redirecting user to another page
    window.location = "/apex/YourCustomPage";
}

4) Now save your button and do not forget to add it to the layout page :)

于 2012-08-08T18:30:56.177 回答
0

如果从按钮调用的方法返回一个PageReference,您可以创建一个PageReference对象并使用该.setRedirect( True)方法进行重定向。您现在可能正在返回Null,这表明“没有行动”。

您可以在创建时设置重定向目标PageReference,或使用该new ApexPages.StandardController()方法为给定对象类型选择一个控制器,或仅Page.vfPageName引用另一个 Visualforce 页面。

当您的方法返回时PageReference,浏览器将重定向到新的 URL。

于 2012-08-14T21:51:13.213 回答