2010-12-13 7 views
3

ich ein Asp bin mit: Repeater-Steuerelement in meine ASPX-Seite, die ähnlich aussieht:Wie dynamisch HTML schreiben basiert auf einem asp: Repeater Wert

<ol> 
    <asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <li>     
       <%# Container.DataItem %> 
      </li> 
     </ItemTemplate> 
    </asp:Repeater> 
</ol> 

Hinweis: Im Code-behind Ich bin Bin eine generische Liste von Daten an das Repeater1 Steuerelement

Ich bin mit dem Versuch zu kämpfen, herauszufinden, wie ich für Werte des Container.DataItem fangen kann, und dann, je nach Wert, ändern Sie das Attribut Stil von das Tag [li style = "myStyle"].

Ich suche eine Inline-Lösung, so dass die Pseudo-Code wie folgt aussehen würde:

<ol> 
    <asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <% if(Container.DataItem == "some value") 
      { 
      <li style="style1">     
       <%# Container.DataItem %> 
      </li> 
      } 
      else 
      { 
      <li style="style2">     
       <%# Container.DataItem %> 
      </li> 
      } 
      %> 
     </ItemTemplate> 
    </asp:Repeater> 
</ol> 

Gibt es das Beispiel Pseudocode oben erreichen eine Inline-Art und Weise? Wenn das so ist, wie?

Antwort

2

Sie können versuchen:

<ol> 
    <asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <li style="<%# (string) Container.DataItem == "some value" ? "style1" : "style2" %>">     
       <%# Container.DataItem %> 
      </li> 
     </ItemTemplate> 
    </asp:Repeater> 
</ol> 
0

Sie können genau das schreiben.

Sie sollten jedoch Container.DataItem in eine Zeichenfolge umwandeln. Andernfalls erhalten Sie einen Referenzvergleich.
Wenn Sie keine Bindung an eine Liste von Zeichenfolgen haben, können Sie Container.DataItem in den jeweils aktuellen Typ umwandeln und Dinge damit tun.

2
<ol> 
    <asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <%# string value = Container.DataItem as string; %> 
      <li class="<%=value == "some value" ? "style1" : "style2" %>"> 
       <%=value %> 
      </li> 
     </ItemTemplate> 
    </asp:Repeater> 
</ol> 
+0

Offenbar gibt syntaktische Fehler mit Ihrer Lösung sind (das heißt ich Kopie/Ihre Probe geklebt und bekam eine Fehlermeldung). Sie haben mich jedoch in die richtige Richtung gewiesen - Danke. – Jed

Verwandte Themen