Reputation: 3278
Is there a way to use an else if on the following eval on the aspx page .
Currently my div is as follows :
<div class="tooltip" style="display: none">
<div style="text-align: center; font-weight: normal">
Value = <%# Eval("Percentage") + "%" %>
</div>
</div>
I would like to use the following logic on my div :
If(Percentage < 50)
display "0 %"
else
display "percentage"
I tried something like this but it doesn't work :
if (<%# Eval("Percentage") %> < 50)
{
Eval("0");
}
else
{
<%# Eval("PassPercentage") + "%" %>
}
I want to know if such an operation is possible to do on the aspx page. I cannot do it in aspx.cs.
Upvotes: 31
Views: 125020
Reputation: 56688
If you absolutely do not want to use code-behind, you can try conditional operator for this:
<%# ((int)Eval("Percentage") < 50) ? "0 %" : Eval("Percentage") %>
That is assuming field Percentage
contains integer.
Update: Version for VB.NET, just in case, provided by tomasofen:
<%# If(Eval("Status") < 50, "0 %", Eval("Percentage")) %>
Upvotes: 64
Reputation: 9
<%if (System.Configuration.ConfigurationManager.AppSettings["OperationalMode"] != "live") {%>
[<%=System.Environment.MachineName%>]
<%}%>
Upvotes: 0
Reputation: 1772
If you are trying to bind is a Model class, you can add a new readonly property to it like:
public string FormattedPercentage
{
get
{
If(this.Percentage < 50)
return "0 %";
else
return string.Format("{0} %", this.Percentage)
}
}
Otherwise you can use Andrei's or kostas ch. suggestions if you cannot modify the class itself
Upvotes: 2
Reputation: 2035
You can try 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>
Upvotes: 19