none
O que significa <%# DataBinder.Eval(Container.DataItem, "Nome")%>

    Question

  •  

    Boa tardte pessal.

     

    Sempre que peguo um DataList, FormView ou DataRepeater, vejo algo parecido com isso, e nunca parei pra saber o que esse codigo faz.

     

     <%# DataBinder.Eval (Container.DataItem, "Nome")% >

     

    O que signigica...?

     

    - DataBinder.Eval

    - Container.DataItem

     

    Grato!

     

    Thursday, November 08, 2007 7:49 PM

Answers

All replies

  • Henrique, boa tarde.

     

    Não sei se entendi bem a sua pergunta. Esta linha de código sempre vai existir quando você tem um controle conectando ao banco de Dados, e retornando o valor na tela com bind.

    Se sua dúvida for além disso, volta ai que detalhamos mais.

     

    Abraço

    Thursday, November 08, 2007 8:19 PM
  • Olá amigo, vamos a sua pergunta,

     

    Primeiramente essa expressão é válida somente em tempo de DataBound pois o objeto DataBinder só existe neste tempo.

     

    Você deve saber que o DataSource do datagrid, ou datalist pode receber qualquer objeto que contenha dados, seja ele datatable, dataset, datareader ou até mesmo arrays e coleções... O DataBinder.Eval, avalia a expressão que você passou e checa se é possível extrair este campo do datasource.

     

    O Container.DataItem é um pedaço do datasource que está sendo bindado no momento, nocaso de datatable, seria um datarow, no caso de arraylist, seria um object.

     

    Resumidamente quando escrevemos <%# DataBinder.Eval (Container.DataItem, "Nome")% > o Eval do DataBinder irá analizar o DataItem e ver se é possível extrair uma propriedade Nome de alguma forma, seja ela uma DataColumn do DataRow, ou uma propriedade da sua classe, ou um nó xml, etc...

     

    Espero ter esclarecido.

     

    Aproveitando, visite meu blog em www.studiomascara.com/blog.

     

     

    Friday, November 09, 2007 10:49 AM
  • Olá amigo, vamos a sua pergunta,

     

    Primeiramente essa expressão é válida somente em tempo de DataBound pois o objeto DataBinder só existe neste tempo.

     

    Você deve saber que o DataSource do datagrid, ou datalist pode receber qualquer objeto que contenha dados, seja ele datatable, dataset, datareader ou até mesmo arrays e coleções... O DataBinder.Eval, avalia a expressão que você passou e checa se é possível extrair este campo do datasource.

     

    O Container.DataItem é um pedaço do datasource que está sendo bindado no momento, nocaso de datatable, seria um datarow, no caso de arraylist, seria um object.

     

    Resumidamente quando escrevemos <%# DataBinder.Eval (Container.DataItem, "Nome")% > o Eval do DataBinder irá analizar o DataItem e ver se é possível extrair uma propriedade Nome de alguma forma, seja ela uma DataColumn do DataRow, ou uma propriedade da sua classe, ou um nó xml, etc...

     

    Espero ter esclarecido.

     

    Aproveitando, visite meu blog em

     

     

    Cara, o céu se ilumina quando um cara faz uma explicação clara dessas. Tem um pessoal que filosofa tanto na hora de explicar qualquer coisa em C# que eu fico até meio depressivo.
    Thursday, April 04, 2013 6:17 PM