VisualForce - 条件 html 标签

Use*_*uck 3 salesforce visualforce

我正在尝试对列表中的第一个元素应用不同的样式。

我目前正在尝试使用计数器仅在何时应用liclasscnt==0我不能在标签中包含< >括号OutputText。有什么方法可以转义括号或使用条件将其插入class到标签中吗?<li>

我知道这可以在事后使用 JavaScript 来完成,但我宁愿避免它。

<apex:variable var="cnt" value="{!0}" /> 
<apex:repeat value="{!items}" var="item" >
    <!-- only render the class if it is the first element -->
    <apex:OutputText value="<li class="activeLI">" rendered="{!cnt==0}" />
    <apex:OutputText value="<li>" rendered="{!cnt!=0}" />        

        <img src="{!$Resource[item.Image__c]}" width="85" height="90"/>
    </li>
    <apex:variable var="cnt" value="{!cnt+1}"/>
</apex:repeat>  
Run Code Online (Sandbox Code Playgroud)

man*_*bkk 5

Visualforce 是严格的,每个元素都必须有一个打开和关闭标签或者必须是自关闭的。编译时,Visualforce 会抱怨,因为它只会看到结束“li”标签,而看不到条件开始“li”标签,一种解决方案是将类名设置为变量,如下所示:

<apex:variable var="cnt" value="{!0}" />
<apex:variable var="class" value=""/>
<apex:repeat value="{!items}" var="item" >
  <apex:variable var="class" value="activeLI" rendered="{!cnt==0}"/>
  <apex:variable var="class" value="" rendered="{!cnt!=0}"/>
    <li class="{!class}">
      ...
    </li>
  <apex:variable var="cnt" value="{!cnt+1}"/> 
</apex:repeat>
Run Code Online (Sandbox Code Playgroud)