微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VF:是否可以仅在数据表中显示特定行?

如何解决VF:是否可以仅在数据表中显示特定行?

我有一个基于OpportunityLineItems对象的数据表,该数据表显示了商机记录中的每个产品。 现在,我只希望显示由复选框选中的产品。 是否可以仅在纯Visualforce中呈现特定行?像<apex:DataTable renderrow="{!Oli.CheckBox == True}之类的东西?

我只有专业许可证,因此Apex代码不可用。 是否有可能仅在客户端的VF中执行此操作?也许JavaScript也可以。.

这是我的代码

<apex:variable var="index" value="{!1}"/>
                        <apex:dataTable width="100%" value="  !Opportunity.OpportunityLineItems}" var="oli"
                            <apex:column width="10%" headerClass="tableheaderleft"  styleClass="tablebodycenter">
                                <apex:outputLabel value="{!index}."/>
                                <apex:variable var="index" value="{!index+1}"/>
                                <apex:facet name="header"></apex:facet>
                             </apex:column>
                            <apex:column width="40%" headerClass="tableheaderleft"  styleClass="tablebodyleft">
                                <apex:facet name="header">Bezeichnung</apex:facet>
                                <apex:OutputField value="{!oli.Name}"/> <br/>
                                    <table border="0" width="100%" style="border-collapse: collapse; margin-bottom:10px">
                                        <tr><td width="30%" style="padding: 0px;line-height: 100%;"><strong>Leistungszeitraum:</strong>&nbsp;<br></br><apex:outputText value="{0,date,dd.MM.yyyy}">
                                            <apex:param value="{!oli.ServiceDate}" /> </apex:outputText>&nbsp;-&nbsp;<apex:outputText value="{0,dd.MM.yyyy}">
                                            <apex:param value="{!oli.Licensing_Period_Calculated__c}" /> </apex:outputText></td></tr>
                                    </table>
                             </apex:column>
                            <apex:column width="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="tableheadercenter"  styleClass="tablebodycenter">
                                <apex:facet name="header">Einzelbetrag</apex:facet>
                                <apex:OutputField value="{!oli.UnitPrice}"/>
                                <apex:facet name="footer"></apex:facet>
                            </apex:column>
                            
                            <apex:column rendered="{!Opportunity.Totaldiscount__c != 0}" 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>

尽可能精确:我不希望整个列都被隐藏。如果我在同一列中有以下元素列表:

Element 1 (with checkBox checked)
Element 2 (with checkBox not checked)
Element 3 (with checkBox checked)

然后,我希望数据表仅输出2行,其中1行用于元素1,另一行对于元素3。因此,不应渲染Element 2的行。

解决方法

不带“ apex:datatable”,那不是全部,您可以有条件地渲染列,但不能渲染行。 尝试使用“ apex:repeat”手工制作表格,并循环输出select * from table_b order by column_a,column_b desc 等原始html。 您可以将单行的html包装在apex:output panel rendering = ...或apex:variables具有相同条件的情况下

(我正在移动设备上,对文件格式表示歉意。如果您仍然遇到问题,请稍后再拨给我)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。