How to make ternary operation with server tag in asp.net page?

689 Views Asked by At

I have a Repeater who contain an html link balise. I want both the attribute name and the text to be "..." if Eval("Name")==null or Eval("Name") instead. So I try to do this :

<a runat="server" class="a_equipement" onserverclick="displayEquipment" name='<%= Eval("Nom")%> == null ? "..." : <%# Eval("Nom")%>'> <%= Eval("Nom");%> == null ? "..." : <%# Eval("Nom");%> </a>

But it didn't work and I got a weird error : "DC6_Configuration_Equipement.aspx(42,214): error CS1026: ) expected"

Is it possible to do it like this or are there other possibilities ?


After some research I try this :

name='<%# Eval("Nom") == null ? "..." : Eval("Nom")%>'

But same probleme again... I work on IE8, could it be compability issues ?

Thank's again for all your answer :)

1

There are 1 best solutions below

0
On

Use it like this. Then it will also work if Nom is "":

<a runat="server" name='<%# string.IsNullOrEmpty(Eval("Nom").ToString()) ? "..." : Eval("Nom") %>'><%# string.IsNullOrEmpty(Eval("Nom").ToString()) ? "..." : Eval("Nom") %></a>

The compatibility with IE 8 has nothing to do with the ternary operator itself.