2017-06-14 1 views
0

Ich habe eine Auswahlliste in meinem benutzerdefinierten Objekt. Ich erstelle eine Visualforce-Seite, auf der verschiedene Vorlagen eingebettet werden müssen. Auf der Haupt-VF-Seite wiederhole ich diese benutzerdefinierte Objektliste, in der ich den Auswahllistenwert an diesen Apex übergeben muss: include's Attribut "Seitenname". Und ich habe Visualforce-Seiten, deren Name mit diesem Auswahllistenwert identisch ist.Übergeben Sie einen der Listenfeld Wert zu Seitenname Attribut für einen Apex: Include-Tag

Im Folgenden finden Sie die Beispielcodes, die ich bisher versucht haben, hatte aber kein Glück:

Code 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> 

Code 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> 

ich viele versucht haben, Wege bis jetzt. Es wäre wirklich eine große Hilfe, wenn jemand antworten könnte. Danke.

Antwort

0

Also habe ich das tatsächlich versucht und es sieht so aus, als ob der Seitenname in der VF-Seite definiert werden muss oder an einen Getter gebunden werden muss, der eine Seitenreferenz oder eine Eigenschaft mit get-Attribut zurückgibt . Es sieht so aus, als ob es nicht an die Variable in einem Repeater gebunden werden kann. Vielleicht sollten Sie versuchen, um zu sehen, ob Dynamic Components könnte den Trick

+0

Ich habe diese Option auch ausprobiert. Aber wie ändere ich die Variable SelectedOptionWithNameOfPage beim Iterieren einer Liste ohne Aufruf an den Controller? Soweit ich weiß, können wir keine Apex-Funktion im Wiederholungs-Tag aufrufen. Und da meine VF-Seite als PDF gerendert wird, kann ich dort keine JavaScript-Funktion aufrufen. Gibt es eine Alternative, wie kann ich eine Apex-Variable bei Iteration einer Liste ändern? – Neha

+0

Ich würde zuerst die renderAs entfernen und sehen, was passiert. Wenn die Seite richtig angezeigt wird, dann ist es das Rendern als PDF. – Psymn

Verwandte Themen