2016-04-18 9 views
2

Ich habe eine Datenliste mit einer Artikelvorlage, die zwei Werte mit einem Leerzeichen zwischen ihnen anzeigt. Das Problem ist, wenn der erste Wert leer ist, gibt es einen führenden leeren Platz. Was ich tun möchte, ist nur den Platz verketten, wenn es einen Wert in der ersten Eval gibt.Verketten, wenn Inline-Eval nicht nichts ist

   <ItemTemplate> 
        <%#Container.DataItem("CustomText")%>&nbsp; 
        <%#Container.DataItem("ServiceDescription")%> 
       </ItemTemplate> 

Ich mag so etwas wie:

   <ItemTemplate> 
        <%#" " + Container.DataItem("CustomText")%>&nbsp; 
        <%#Container.DataItem("ServiceDescription")%> 
       </ItemTemplate> 

Wo es nur einen des ersten <% #% verarbeiten>, wenn es ein Wert für Wunschtext ist.

Sinn machen? Ich mag es, die führende &NBSP; zu haben, weil es erlaubt, den Anfang der Multilinienbeschreibungen zu versetzen.

Antwort

3

Sie können dies versuchen:

<%# " " + If(IsDBNull(Container.DataItem("CustomText")) OrElse String.IsNullOrEmpty(Container.DataItem("CustomText")), String.Empty, String.Format("{0}&nbsp;", Container.DataItem("CustomText"))) & Container.DataItem("ServiceDescription") %> 
+0

Fantastische und elegant, danke. Ich verstehe Inline-Code nicht so gut, wie ich es möchte. –

+1

Sie sollten den "IF" -Operator anstelle der "IIF" -Funktion in VB.NET –

+0

@MattWilko verwenden - Danke für den Vorschlag! Ich kannte diesen Operator nicht. Ich habe meine Antwort aktualisiert. – ConnorsFan