在 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,只要确保你传递给它一个不同的参数。干杯~~
我有这个 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,只要确保你传递给它一个不同的参数。干杯~~