Eu preciso preencher um repetidor com dados relacionados ao pseudo
Pergunta
Antes de eu fazer isso, eu percebi que eu iria perguntar se era o melhor caminho. Cada objeto "Vendedor" tem um objeto "Bucket". Na minha repetidor Eu preciso exibir algumas propriedades de Vendor e alguns do balde, também algumas imagens povoadas por sistema de arquivos que estão ligadas ao fornecedor. Imaginei que a melhor maneira de fazer isso é vincular o repetidor com o objeto fornecedor, em seguida, em ItemDataBound eu preencher as imagens e os baldes com base no fornecedor que é obrigado a que os itens específicos [e.Item.ItemIndex].
Esta é a melhor maneira de fazer isso?
Solução
Se o objeto do fornecedor só pode conter um único objeto Bucket pode ser apropriado para ligar tudo isso em um único, de nível superior repetidor. Você pode acessar o balde através de simples dados de ligação todos no nível superior sem substituir ItemDataBound.
Porque você está provavelmente a ligação do "Vendedor", você tem acesso a ele de membros em um vincular se você quiser fazê-lo desta maneira:
<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>
Você quer fazer o ItemDataBound se for preciso "processo de algo" durante cada iteração da necessidade de acesso de ligação e detalhada para cada objeto Vendedor para a tomada de decisão.
Se o objeto fornecedor pode conter vários baldes, então a melhor maneira de obter acesso ao que é através ItemDataBound. Em cada iteração do fornecedor que você pode vincular um novo repetidor, aninhada para exibir os dados de balde, ou executar qualquer repetindo / funcionalidade de agregação pode ser necessário.
Dependendo de como você quer que ele se comportar em seu cliente, você poderia desenhar apenas os fornecedores. Quando o usuário clica sobre o fornecedor (ou qualquer outro), você pode executar uma chamada AJAX para o servidor que recuperar os dados Balde e torná-lo em sua página dinamicamente. Você pode querer tentar essa abordagem se houver um grande número de fornecedores juntamente com seus baldes que está sendo processado. Isso ajudaria o desempenho do banco de dados e página tempo de render em contraste com a construção de tudo no lado do servidor ASPX. (Mas isso precisa ser um monte de dados, você deve fazê-lo por razões de usabilidade / cliente antes de tentar ganhos de desempenho mérito.)
Outras dicas
Isso é como eu costumo ir sobre ele, ligam no objeto principal e lidar com os detalhes no ItemDataBound.