vb.net en ligne SI avec OU ... ne pas évaluer
-
23-09-2019 - |
Question
Je travaille sur un petit problème où je suis en train de montrer / cacher un panneau en fonction de deux critères
- Un champ de données spécifique ne doit pas être vide
- Les données spécifiques déposées doivent pas non plus égale « Pas Relocatable »
Malheureusement, cela ne semble pas fonctionner pour moi (noter que le réglage soit l'un ou l'autre critère fonctionne très bien.)
<asp:Panel runat="server" Visible='<%#If(Not String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem, "_236")) Or Not DataBinder.Eval(Container.DataItem, "_236") = "Not Relocatable", True, False)%>'>
<tr>
<td>
</td>
<td class="align-right lightgreen">
Buyer would consider relocating a business, if it is:
</td>
<td>
</td>
<td colspan="3">
<%#DataBinder.Eval(Container.DataItem, "_236")%>
</td>
<td>
</td>
</tr>
</asp:Panel>
Quelqu'un peut-il donner un coup de main pour remédier à ce problème pour moi?
La solution
La <%# %>
de syntaxe est liaison de données syntaxe, pas une syntaxe d'expression en ligne. Vous ne pouvez pas utiliser le code de procédure à l'intérieur de celui-ci comme vous pouvez dans les balises code en ligne de <% %>
.
La liaison de données doivent contenir une seule fonction Eval
ou Bind
. Si vous devez faire branchement conditionnel en fonction de ces fonctions, vous devrez le faire en utilisant le code en ligne autour des balises de liaison.