Pergunta
Estou trabalhando em um pequeno problema em que estou tentando mostrar/ocultar um painel com base em dois critérios
- Um campo de dados específico não deve estar em branco
- Os dados específicos arquivados também não devem ser iguais "não realocáveis"
Infelizmente, isso não parece estar funcionando para mim (observe que definir um ou outro critério funciona muito bem.)
<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>
Alguém pode ajudar para corrigir esse problema para mim?
Solução
A sintaxe <%# %>
é um ligação de dados Sintaxe, não uma sintaxe de expressão em linha. Você não pode usar o código processual dentro dele como você pode no código embutido <% %>
Tag.
Tags de ligação de dados devem conter um único Eval
ou Bind
função. Se você precisar fazer ramificação condicional com base nessas funções, precisará fazê -lo usando o código embutido em torno das tags de ligação.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow