2013-06-12 4 views
23

Gibt es eine Möglichkeit, eine else zu verwenden, wenn auf der aspx-Seite auf der folgenden Bewertung.mit if sonst mit Eval in aspx Seite

Derzeit mein div sich wie folgt:

<div class="tooltip" style="display: none">                 
     <div style="text-align: center; font-weight: normal"> 
       Value = <%# Eval("Percentage") + "%" %>  
     </div> 
    </div> 

Ich möchte die folgende Logik auf meinem div verwenden:

If(Percentage < 50) 
    display "0 %" 
    else 
    display "percentage" 

Ich habe versucht, so etwas wie dieses, aber es funktioniert nicht:

if (<%# Eval("Percentage") %> < 50) 
{ 
    Eval("0"); 
} 
else 
{ 
    <%# Eval("PassPercentage") + "%" %> 
} 

Ich möchte wissen, ob eine solche Operation auf der aspx-Seite möglich ist. Ich kann es nicht in aspx.cs tun.

+6

Warum ist es nicht möglich, Code-Behind-Klasse für diesen Einsatz? – Andrei

+0

Ich benutze das Div in jquery Tooltip anzuzeigen. Ich würde es gerne auf der ASPX-Seite machen. Wenn es möglich ist. – CodeNinja

+0

Sie könnten einen ternären Operator verwenden – emd

Antwort

45

Wenn Sie absolut keinen Code-behind verwenden möchten, können Sie Bedingungsoperator für diese versuchen:

<%# ((int)Eval("Percentage") < 50) ? "0 %" : Eval("Percentage") %> 

Das heißt, Feld Percentage enthält Integer.

+0

perfekt! das funktioniert ! – CodeNinja

12

können Sie versuchen, C#

public string ProcessMyDataItem(object myValue) 
{ 
    if (myValue == null) 
    { 
    return "0 %""; 
    } 
    else 
    { 
    if(Convert.ToInt32(myValue) < 50) 
     return "0"; 
    else 
     return myValue.ToString() + "%"; 
    } 

} 

asp

<div class="tooltip" style="display: none">                 
     <div style="text-align: center; font-weight: normal"> 
    Value =<%# ProcessMyDataItem(Eval("Percentage")) %> </div> 
</div> 
+0

+1 Danke! Dies ist auch eine funktionierende Lösung. aber ich suche etwas auf der aspx Seite selbst. – CodeNinja

+0

Sie sind herzlich willkommen. Dann ist Andrei Post für Sie geeignet :) –

2

Wenn Sie eine Modellklasse zu binden versuchen, können Sie eine neue Nur-Lese-Eigenschaft, um es hinzufügen:

public string FormattedPercentage 
{ 
    get 
    { 
     If(this.Percentage < 50) 
      return "0 %"; 
     else 
      return string.Format("{0} %", this.Percentage)   
    } 
} 

Ansonsten können Sie verwenden Andrei oder kostas ch. Vorschläge, wenn Sie die Klasse nicht ändern können, selbst

+0

Danke! Dies ist hilfreich. aber ich verwende Prozent nicht als Eigenschaft. Aber es wäre etwas, das in der Zukunft nützlich wäre. – CodeNinja

1
<%if (System.Configuration.ConfigurationManager.AppSettings["OperationalMode"] != "live") {%> 
         &nbsp;[<%=System.Environment.MachineName%>] 
         <%}%> 
0
<%# (string)Eval("gender") =="M" ? "Male" :"Female"%> 
+4

Im Allgemeinen vermeiden Sie Code-Only-Antworten. Erwägen Sie, eine 'description' hinzuzufügen oder zumindest mehr Kontext zu zeigen, der Ihnen hilft, Ihren Code zu erklären. Vielen Dank – MickyD