Melhor técnica para vários campos de avaliação no Gridview ItemTemplate?
-
09-06-2019 - |
Pergunta
Qual é a melhor maneira de usar vários campos EVAL em um GridView ItemTemplate?
Procurando ter algum controle sobre a formatação da aparência, bem como configurar hiperlinks/javascript etc.
Solução
Ainda mais claro, IMO, é:
<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
Outras dicas
Eu já havia usado isso (ruim, eu sei):
<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>
Resultado = 'João - Smith'
Mas acabei de descobrir que também posso colocar DOIS (ou mais) Evals no mesmo grupo vinculado a dados:
<%#Eval("Name1") & " - " & Eval("Name2")%>
Resultado = 'João - Smith'
Ou
<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>
Resultado = 'Nome - John, Sobrenome - Smith'
Eval e Bind são péssimos.
Por que obter o imóvel através da reflexão?Você pode acessá-lo diretamente assim:
((MyObject)Container.DataItem).MyProperty
Não é como se o objeto fosse desconhecido para você em tempo de execução.De qualquer forma, esses são meus dois centavos.
Eu tenho uma maneira mais fácil de fazer a mesma coisa ...
<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>
.
<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>
Aqui ambos os objetos são convertidos em string e concatenados.