Se você estiver familiarizado com o ASP clássico, estará familiarizado com a sintaxe de vinculação de dados no ASP.NET, mesmo que as funções não sejam as mesmas. A expressão de vinculação de dados é o código entre <%# e %> no arquivo ASPX. Ele permite que os dados sejam vinculados a um controlador, bem como propriedades, expressões e resultados de chamadas de método na página sejam vinculados ao controlador. Embora esse recurso seja fácil de usar, às vezes causa confusão ao determinar qual conteúdo pode ser vinculado e se foi usado.
Elementos de vinculação de dados
Quando o método DataBind da página no ASP.NET é chamado, a expressão de vinculação de dados é vinculada às propriedades, propriedades de controle do servidor e fontes de dados no ASP.NET. Você pode colocar uma expressão no lado numérico de um par valor/valor de atributo ao abrir uma guia controlada pelo servidor ou em qualquer lugar da página. Todas as expressões de vinculação de dados, não importa onde sejam colocadas, são colocadas entre caracteres <%# e %>.
Ao usar um controlador de dados (Repetidor, DataGrid, etc.), o parâmetro da expressão geralmente é o nome da coluna da fonte de dados. Independentemente disso, qualquer expressão válida pode ser usada desde que retorne um valor. Da mesma forma, a mesma sintaxe pode ser usada para controles de lista externos. Isso inclui a exibição de valores na página ou a montagem de propriedades do controlador.
Container.DataItem é um alias de tempo de execução para DataItem para um item específico. Ele mapeia um único item de uma fonte de dados, como uma linha de uma consulta de dados ou um único elemento de um vetor. O tipo de dados real do DataItem é determinado pela fonte de dados. Portanto, ao lidar com um vetor de números inteiros, o DataItem também é um número inteiro.
A lista a seguir analisa algumas situações de sintaxe do VB.NET:
<%# Container.DataItem %>--retorna um vetor de string
<%# Container.DataItem("expression") %>--retorna um item específico no contêiner DataView Field
< %# Container.DataItem.PropertyName %>--retorna o valor da propriedade de uma string específica na fonte de dados
<%# CStr(Container.DataItem.PropertyName) %>--retorna o valor da propriedade e o converte em um formato de string
quando usando C# , a sintaxe é um pouco diferente. A lista a seguir contém o código C# correspondente à lista acima. Observe que a sintaxe básica é a mesma, mas há alterações na conversão dos valores de atributos e tipos de dados retornados.
<%# Container.DataItem %>
<%# ((DataRowView)Container.DataItem)["PropertyName"] %>
<%# ((ObjectType)Container.DataItem).PropertyName %>
<%# ((ObjectType)Container. DataItem).PropertyName.ToString() %>
A sintaxe é consistente ao atuar nas propriedades e métodos da página. Contanto que um valor de string seja retornado, a sintaxe é exatamente a mesma. A lista a seguir fornece um exemplo:
<%# propertyName %>--Retorna valores de propriedade em nível de página
<asp:ListBox id="lstValues" datasource='<%# propertyName %>' runat="server">-- Retorna o mesmo que os valores das propriedades no nível da página (vetores, conjuntos de objetos, etc.) vinculados ao controlador de dados
<%# (objectName.PropertyName) %>--Exibe os valores das propriedades do objeto no nível da página
<%# MethodName() %>--O método de exibição da página retorna valores
Use a sintaxe a seguir para usar um único valor na página (valores retornados por propriedades e métodos, etc.)
<%= Valor %>
O código C# na Listagem A ilustra os dados vinculação em um formulário da Web ASP.NET. Ele seleciona o nome e o número de telefone do funcionário na tabela SQL Sever Northwind Employees. O valor da consulta é exibido por meio do controlador repetidor ASP.NET. Os valores das colunas são inseridos por meio de vinculação de dados. O título do formulário da tabela é montado através de uma chamada de método. Além disso, a propriedade ItemIndex de Dataitem é usada para exibir o número de linhas. A propriedade ItemIndex começa em 0 e é incrementada em 1 entre exibições.
A Listagem B contém o código VB.NET equivalente. A principal diferença é que VB.NET usa parênteses e C# usa colchetes. E a conversão de linha é desnecessária no VB.NET.
Usar Contain.DataItem é um pouco tedioso, porque você precisa prestar atenção aos tipos de dados e à conversão de tipos de dados a qualquer momento. A Microsoft fornece a classe DataBinder, que pode simplificar ainda mais o desenvolvimento.
O uso da
classe DataBinder DataBinder é explicado detalhadamente na documentação da Microsoft (MSDN). Este método permite que o designer RAD gere facilmente a sintaxe de ligação de dados analisada. Este método também pode ser usado em declarações de páginas de Web Forms para simplificar o mapeamento de um tipo para outro.
Ao usar valores de dados em uma página ASP.NET, você pode usar o método Eval da classe DataBinder para permitir que o .NET faça o trabalho pesado. O método Eval aceita o objeto Container.DataItem anteriormente substituído, calcula os dados detalhados para cada campo especificado na expressão e os exibe. A sintaxe é a seguinte:
DataBinder.Eval(Container.DataItem, "field name", "optional formatting")
Usando essa sintaxe, você pode reescrever o primeiro exemplo usando DataBinder.Eval. Consulte a Listagem C para obter seu código C#. A Listagem D contém código equivalente em VB.NET.
DataBinder.Eval é muito poderoso para enviar trabalho para o sistema, mas também esteja ciente de que a sobrecarga de tempo e recursos do sistema para localizar elementos e determinar tipos de objetos/dados é alta.
A vinculação de dadoscom opções avançadas
torna a colocação de dados em páginas ASP.NET relativamente simples. Há muitas opções diferentes de vinculação de dados para escolher, incluindo: vincular dados a um controlador e determinar como exibi-los ou optar por vincular dados a um controlador declarado na página ASP.NET. No final das contas, tudo se resume à sua preferência, mas ter muitas opções é, em última análise, uma coisa boa.
Tony Patton iniciou sua carreira como desenvolvedor de software e foi certificado em Java, VB, Lotus e XML.