我有资产列表
Name: column 2: etc
A1 C1 b1
A2 c2 b2
当我点击A1时,我调用action =“{!assetClicked}”来做一些逻辑,但我无法将其重定向到另一个Visual Force Page 如果我使用我可以链接到另一个VF页面,但不能做动作=“{!assetClicked}”
有没有办法将它们组合在一起或其他方式?
页码:
<apex:form >
<apex:commandLink action="{! assetClicked}" value="{!wn.name}" id="theCommandLink">
<apex:param value="{!wn.name}" name="id" assignTo="{!selectedAsset}" ></apex:param>
<apex:outputLink value="/{!wn.id}" id="eventlink">{!wn.name}</apex:outputLink>
</apex:commandLink>
</apex:form>
答案 0 :(得分:7)
您需要使用PageReference类。
以下是文档中的修改示例:
// selected asset property
public string selectedAsset {get;set;}
public PageReference assetClicked()
{
// Your code here
PageReference redirect = new PageReference('/apex/PageName');
// pass the selected asset ID to the new page
redirect.getParameters().put('id',selectedAsset);
redirect.setRedirect(true);
return redirect;
}
或者,如here所述,您可以使用Page.PageName;
代替new PageReference('/apex/PageName');
。
答案 1 :(得分:0)
在按钮方法中,在方法的末尾添加类似的内容:
PageReference pr = new PageReference('/apex/YOUR_PAGE_NAME');
return pr;
答案 2 :(得分:0)
您没有说明如何在deswnation Visualforce页面控制器中检索参数。我在另一个论坛发现了这个:
// Assuming the parameter is 'id' after redirecting to page2 you can retrieve the paramter thus
public customcontrollerpage2() {
String ID = ApexPages.currentPage().getParameters().get('id');
}