将其中一个列表字段值传递给apex:include标记的pagename属性

时间:2017-06-14 12:22:28

标签: salesforce visualforce

我的自定义对象中有一个选项列表。我正在创建一个visualforce页面,其中需要嵌入不同的模板。在主VF页面中,我正在迭代这个自定义对象列表,其中我必须将选项列表值传递给此顶点:include' s属性" pagename"。我有visualforce页面,其名称与此选择列表值相同。

以下是我到目前为止尝试但没有运气的示例代码:

代码1 -

<apex:page renderAs="pdf" controller="MyCheckLayoutController">

 <apex:repeat value="{!listwrapper}"  var="cl" >  
        <apex:include pageName="{!cl.check_layout_type}" >     // cl.check_layout_type is variable in wrapper class and it is the name of visualforce page as well.

/*  This gives error as variable not found.  */

        </apex:include>
    </apex:repeat>
 </apex:page>

代码2 -

<apex:page renderAs="pdf" controller="MyCheckLayoutController">

 <apex:repeat value="{!listwrapper}"  var="cl" >  

   <apex:variable var="type" value="{!cl.check_layout_type}" />
    {!type}  // This variable contains value

   <apex:include pageName="{!type}" > 

/* But It doesnot read it's value here. It says pagename cannot be null*/
        </apex:include>
    </apex:repeat>
 </apex:page>

到目前为止,我已经尝试了很多方法。如果有人能回答,那将是非常有帮助的。 感谢。

1 个答案:

答案 0 :(得分:0)

所以我实际上尝试了一下,看起来页面名称需要在VF页面中定义,或者必须绑定到返回页面引用的getter或者具有返回页面ref的get属性的属性。看起来它不能绑定到转发器中的变量。也许你应该试着看看Dynamic Components是否可以做到这一点