在 apex:outputPanel 中使用 apex:repeat

Using apex:repeat inside an apex:outputPanel

我有这个 VF,它在第一个输出面板中有一个按钮,它充当要显示的第二个输出面板的网关

<apex:page standardController="SObject" contentType = "{!IF(!showForm, 'text/html', 'application/vnd.ms-excel#TestFile123.csv')}" showHeader="true" sidebar="true" extensions="Class123" lightningStylesheets="true">
    <apex:outputPanel layout="none" rendered="{!!showForm}"> <!-- Added Shifting VF Page | if showForm is FALSE-->
        <apex:form >
            <apex:commandButton action="{!activator}" value="Activator" id="xoxo"/>
        </apex:form>
    </apex:outputPanel>

    <apex:outputPanel layout="none" rendered="{!showForm}"> <!-- if showForm is TRUE-->
        {!header}
        <apex:repeat value="{!tXoxo}" var="TN" >
            {!TN.A},{!TN.B},{!TN.C},""
        </apex:repeat> 
    </apex:outputPanel>
</apex:page>

我可以提取 CSV 文件。但是,该文件只有 header / 不显示 apex:repeat

内的 {!TN.A},{!TN.B},{!TN.C},"" 的任何值

THEN 在控制器中 class:

//Constructor 2.0
    public Class123 (ApexPages.StandardController controller){    
    
        this.controller = controller;
        this.csSO = (SObject1)controller.getRecord();
        
        if(csSO != null){
                 csSO = [SELECT Id, 
                                H, 
                                c, N, 
                                D, E 
                            FROM SObject1 WHERE Id =: csSO.id];
            system.debug(csSO.Name);
            cTQwNs = [SELECT Id, 
                            A,
                            B,
                            C,
                            D
                        FROM SObject2 WHERE S =: csSO.id];
        }
    }

    public void activator() {//sets the showForm variable to true
        showForm = true;
        tXoxo = populateTestClass();
        system.debug(tXoxo[0]);
    }

根据我的调试日志,我似乎找不到 csSO.Name 值。所以我猜“也许控制器根本没有传递任何东西?” 因为Classs123之后,下面还有这个

public <dataType> populateTestClass() {}

这是 tXOxo 所调用的,也是在 VF 的 apex:repeat 内部调用的,但它没有获得任何价值。 我在控制器内部传递值的方法 class 非常直接,所以我找不到其他可能导致传递空值的原因。

有谁知道是否真的存在控制器不传递任何内容的情况,以及如何解决此类问题??

原来不是主控是不行的。我用作第二个控制器 class 的 class 没有工作,因此根本没有设置任何值——因此无法传递任何值。

如果你做了我做的,我做了另一个控制器 class,只要确保你传递给它一个不同的参数。干杯~~