Salesforce 使用Apex Repeat填充Visualforce表
我的列表似乎是空的,没有与控制器扩展一起传递,或者某些问题导致我的表没有填充预期的数据。正在从工单上的自定义按钮加载此visualforce页面 我尝试使用以下方法填充数据: :ApexPages.CurrentPage().getParameters().get('id')) 除了硬编码之外,我认为是代码示例中所示的“id” VF页面如下所示:Salesforce 使用Apex Repeat填充Visualforce表,salesforce,apex,visualforce,Salesforce,Apex,Visualforce,我的列表似乎是空的,没有与控制器扩展一起传递,或者某些问题导致我的表没有填充预期的数据。正在从工单上的自定义按钮加载此visualforce页面 我尝试使用以下方法填充数据: :ApexPages.CurrentPage().getParameters().get('id')) 除了硬编码之外,我认为是代码示例中所示的“id” VF页面如下所示: <apex:page Standardcontroller="WorkOrder" extensions="cWOInvoice1" rende
<apex:page Standardcontroller="WorkOrder" extensions="cWOInvoice1" renderAs="pdf">
<apex:form >
...
<table style="...">
<tbody style="...">
<tr style="display:table-row;">
<th style="...">Scope of Work</th>
<th style="...">Trade</th>
<th style="...">Price</th>
</tr>
<apex:repeat value="{!woli}" var="woli">
<tr>
<td style = "...">{!woli.Repair_Product__r.Name}</td>
<td style = "...">{!woli.Repair_Product__r.Trade__c}</td>
<td style = "...">${!woli.Item_Price_Roll_Up_Sub__c}</td>
</tr>
</apex:repeat>
</tbody>
</table>
...
</body>
</apex:form>
</apex:page>
...
工作范围
贸易
价格
{!woli.Repair\u Product\u\r.Name}
{!woli.Repair\u Product\u\r.Trade\u\u c}
${!woli.Item_Price_Roll_Up_Sub_c}
...
控制器如下所示(同样是针对错误测试而硬编码的workOrderID):
公共类CW1{
公共工作RDerLineItem woli{get;set;}
公共cWOInvoice1(ApexPages.StandardController){
Listwoli=[选择Id、区域、租户、负责人、工作区、维修产品、名称、维修产品、账单费率、零售、维修产品、账单费率、维修产品、账单费率、维修产品、交易费率、来自工作区内的项目,其中工作区=0WO5500CW4LGAS'];
}
}
我希望自定义控制器传递一个工作订单行项目列表,然后apex repeat将显示在表中。相反,我得到了一个空表。变量
woli
在不同的范围内用两种不同的类型声明
在控制器级别,woli
是单个WorkOrderLineItem
成员变量:
public WorkOrderLineItem woli {get;set;}
因为它从未初始化,所以它的值是null
在构造函数中,将woli
重新声明为列表
并初始化它:
public cWOInvoice1(ApexPages.StandardController controller){
List<WorkOrderLineItem>woli=[SELECT Id, Area__c, Tenant_Responsible__c, WorkOrderId, Repair_Product__r.Name, Repair_Product__r.Bill_Rate_Retail__c, Repair_Product__r.Bill_Rate__c, Repair_Product__r.Trade__c FROM WorkOrderLineItem WHERE WorkOrderId='0WO55000000Cw4LGAS'];
}
public cWOInvoice1(ApexPages.StandardController){
Listwoli=[选择Id、区域、租户、负责人、工作区、维修产品、名称、维修产品、账单费率、零售、维修产品、账单费率、维修产品、账单费率、维修产品、交易费率、来自工作区内的项目,其中工作区=0WO5500CW4LGAS'];
}
此值在构造函数末尾超出范围,并且永远不会提供给您的页面
您需要删除本地声明并更正成员变量的类型
无论您的
当前是否编译(我不确定这是否合法),您都应该将迭代变量更改为与绑定属性不同的名称:
<apex:repeat value="{!woli}" var="woli">
您可能希望将控制器属性设置为类似于
wollist
的形式以澄清问题。非常感谢David!我在构造函数中两次声明变量肯定是个业余错误。我做了您建议的更改,出现了一个新错误:)。我想学习一门新语言的乐趣。
<apex:repeat value="{!woli}" var="woli">