提问者:小点点

VisualForce:仅当值不为空时才呈现引发异常


我正在构建一个visualforce页面,其中有一个apex:dataTable,包含几个列。

现在我希望列“discount”只在其值不为空且>0时显示。

我的代码如下:

<apex:dataTable width="100%" value="{!Opportunity.OpportunityLineItems}" var="oli">
                            <apex:column width="50%" headerClass="tableheaderleft"  styleClass="tablebodyleft">
                                <apex:facet name="header">Bezeichnung</apex:facet>
                                <apex:OutputField value="{!oli.Name}"/>
                             </apex:column>
                            <apex:column width="{!If(oli.Discount!=null,If((oli.Discount>0),"10%","10%"),"10%")}" headerClass="tableheadercenter" footerClass="tablefootercenter" styleClass="tablebodycenter">
                                <apex:facet name="header">Anzahl</apex:facet>
                                <apex:OutputField value="{!oli.Quantity}"/>
                                <apex:facet name="footer"></apex:facet>
                            </apex:column>
                            <apex:column width="20%" headerClass="tableheaderright"  styleClass="tablebodyright">
                                <apex:facet name="header">Einzelbetrag</apex:facet>
                                <apex:OutputField value="{!oli.UnitPrice}"/>
                                <apex:facet name="footer"></apex:facet>
                            </apex:column>
                            
                         
                           <apex:column  rendered="{!If(oli.Discount!=null,(oli.Discount>0),false)}" headerClass="tableheadercenter" footerClass="tablefootercenter" styleClass="tablebodycenter">
                                <apex:facet name="header">Rabatt</apex:facet>
                                <apex:OutputField value="{!oli.Discount}"/>
                                <apex:facet name="footer"></apex:facet>
                            </apex:column>  
                            
                            <apex:column width="20%" headerClass="tableheaderright"  styleClass="tablebodyright">
                                <apex:facet name="header">Gesamtbetrag</apex:facet>
                                <apex:OutputField value="{!oli.TotalPrice}"/>
                                <apex:facet name="footer"></apex:facet>
                            </apex:column>                                                                                            
                        </apex:dataTable>

但我总是得到以下异常:

javax.faces.facesException:core.apexpages.Exceptions.apexpagesDeveloperException:运算符“>”的argumenttype不正确。

有人知道为什么会出现这种例外吗? 会因为折扣返回百分比值而发生吗?

非常感谢!


共1个答案

匿名用户

双引号中有双引号,可以用单引号代替。

例如。

<apex:column width="{!If(oli.Discount!=null,If((oli.Discount>0),'10%','10%'),'10%')}" headerClass="tableheadercenter" footerClass="tablefootercenter" styleClass="tablebodycenter">
    <apex:facet name="header">Anzahl</apex:facet>
    <apex:OutputField value="{!oli.Quantity}"/>
    <apex:facet name="footer"></apex:facet>
</apex:column>

独立示例-

<apex:page>    
<canvas id="myCanvas" width="{! if(true == true, '300%', '200%') }" height="300" style="border:1px solid">
Your browser does not support the HTML5 canvas tag.
</canvas>
</apex:page>