单击提交按钮后,无法将变量传递给reRender上的流

时间:2013-07-08 18:44:24

标签: salesforce visualforce

我正在尝试通过Flow传递变量。我是VisualForce页面的新手,所以请原谅我的无知。

我已经为控制器和VisualForce页面添加了以下代码。

VF页面

<apex:page controller="testController">
    <apex:form>
        <apex:inputText value="{!inputValue}" id="textInput" />
        <apex:commandButton action="{!actionMethod}" reRender="myFlow" value="GO"/>
    </apex:form>

    <apex:variable var="input" value="Hello1" />
    <flow:interview name="testFlow" id="myFlow">
        <apex:param name="inputFromVF" value="{!inputValue}" />
        <apex:outputText value="{!inputValue}" />
    </flow:interview>
</apex:page>

Apex Class

public class testController{

public Flow.Interview.testFlow myFlow {get; set;}
public testController() {

public PageReference actionMethod() {
    return null;
}


public String inputValue { get; set; }

}

当我单击按钮刷新变量时,输出文本会刷新,但它不接受参数中的变量值。我可以硬编码并传递它。

1 个答案:

答案 0 :(得分:1)

我在晚上睡觉后想出了一个解决方案。我在首次运行VF页面时将流设置为未渲染,然后使用新变量渲染它并且它可以正常工作。这总是很简单的答案。

代码如下。

VF页面

<apex:page controller="testController">
<apex:form >
    <apex:inputText value="{!inputValue}" id="textInput" />
    <apex:commandButton action="{!actionMethod}" value="GO" reRender="flowPanel, myFlow">
    </apex:commandButton>
</apex:form>
    <apex:outputPanel id="flowPanel" rendered="true">

<apex:variable var="input" value="{!inputValue}" />
<apex:outputText value="{!inputValue}" />
    <flow:interview name="testFlow" id="myFlow" rendered="{!renderOrNot}">
        <apex:param name="inputFromVF" value="{!inputCti}" id="parameter" />
        <apex:outputText value="{!inputCti}" />
    </flow:interview>
</apex:outputPanel>

Apex控制器

public class testController{

public String inputValue { get; set; }
public Boolean renderPanel { get; set; }
public String inputCti { get; set; }
public Boolean renderOrNot { get; set; }

public Flow.Interview.testFlow testFlow {get; set;}

public String actionMethod() {
    renderOrNot = true;
    inputCti = inputValue;
    return null;        
}

}