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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top