这是设置。我有一个带有自定义按钮的标准页面布局。
当用户单击按钮时,我想检查扩展类中的值。如果值为 null 或 0 - 我希望显示页面消息,否则我想将它们重定向到另一个VF页面。
我尝试这样做的方法是在页面布局上放置一个 VF 部分,并使用 action:support 方法有条件地呈现它,但我无法让它工作..
停!
这是设置。我有一个带有自定义按钮的标准页面布局。
当用户单击按钮时,我想检查扩展类中的值。如果值为 null 或 0 - 我希望显示页面消息,否则我想将它们重定向到另一个VF页面。
我尝试这样做的方法是在页面布局上放置一个 VF 部分,并使用 action:support 方法有条件地呈现它,但我无法让它工作..
停!
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 :)
如果从按钮调用的方法返回一个PageReference
,您可以创建一个PageReference
对象并使用该.setRedirect( True)
方法进行重定向。您现在可能正在返回Null
,这表明“没有行动”。
您可以在创建时设置重定向目标PageReference
,或使用该new ApexPages.StandardController()
方法为给定对象类型选择一个控制器,或仅Page.vfPageName
引用另一个 Visualforce 页面。
当您的方法返回时PageReference
,浏览器将重定向到新的 URL。