Muitos controles diferentes para escolher! Quais são as práticas recomendadas para determinar qual controle usar para exibir dados no ASP.NET?
asp.net
user-interface
Mattruma
fonte
fonte
Respostas:
É realmente sobre o que você está tentando alcançar
Gridview - Limitado em design, funciona como uma tabela html. Mais na funcionalidade integrada, como editar / atualizar, página, classificação. Muita sobrecarga.
DataGrid - versão antiga do Gridview. Um gridview é um super datagrid.
Datalist - versão mais personalizável do Gridview. Também tem alguma sobrecarga. Mais trabalho manual, pois você deve projetá-lo sozinho.
ListView - o novo Datalist :). Quase um híbrido de datalist e gridview onde você pode usar paginação e construir em Gridview como funcionalidade, mas tem a liberdade de design. Um dos novos controles nesta família
Repetidor - Peso muito leve. Nenhuma funcionalidade incorporada como cabeçalhos, rodapés. Tem a menor sobrecarga.
fonte
Todos os outros acertaram: Depende.
Agora para algumas orientações específicas (expandindo a excelente resposta do WebDude acima) ...
Seu projeto se encaixa em uma planilha natural ou visualização em grade dos dados? GridView .
Você precisa exibir uma lista ou outra exibição formatada de dados, possivelmente com cabeçalhos e rodapés e provavelmente com controles e / ou formatação específicos para cada registro de dados? (EG, links personalizados, possivelmente LinkButtons ou controles de edição específicos?) Essa exibição não se ajusta de forma natural em uma planilha ou visualização em grade? Exibição de lista
Se você atender a todos os critérios de ListView, mas se encaixar naturalmente em uma grade, você pode considerar DataList .
Eu escolho o Repetidor quando preciso apenas de alguns dados básicos iterados com alguns bits de design personalizado, sem cabeçalhos, sem rodapés, bonitos e limpos.
fonte
Visualização de marcação
Declarar o seguinte código de amostra é possível para todos os 3 (ListView, DataList, Repetidor)
nas seguintes listas Poderáver os modelos e opções disponíveis para cada um deles e ver as diferenças por si mesmo
ListView (observe a edição, grupo, inserção, layout)
DataList (observe os pares de estilos)
Repetidor
Visualização de código (visualização avançada)
CompositeDataBoundControl :
veja a seguinte hierarquia de classes (e controles relacionados).
esses controles hospedam outros controles asp.net em seus modelos para exibir dados vinculados ao usuário
Algumas descrições para melhores esclarecimentos
O controle ListView
O controle ListView também usa modelos para a exibição de dados. No entanto, ele oferece suporte a muitos modelos adicionais que permitem mais cenários ao trabalhar com seus dados. Esses modelos incluem LayoutTemplate, GroupTemplate, ItemSeparatorTemplate .
O controle ListView ( ao contrário de DataList e Repeater ) também suporta implicitamente a capacidade de editar, inserir e excluir dados usando um controle de fonte de dados. Você pode definir modelos individuais para cada um desses cenários.
O controle DataList
O controle DataList funciona como o controle Repetidor . Ele repete os dados para cada linha em seu conjunto de dados e exibe esses dados de acordo com seu modelo definido. No entanto , ele estabelece os dados definidos no modelo dentro de várias estruturas HTML. Isso inclui opções de layout horizontal ou vertical, e também permite definir como os dados devem ser repetidos, como fluxo ou layout de tabela.
O controle DataList não usa automaticamente um controle de fonte de dados para editar dados. Em vez disso, ele fornece eventos de comando nos quais você pode escrever seu próprio código para esses cenários. Para habilitar esses eventos, você adiciona um controle Button a um dos modelos e define a propriedade CommandName do botão para a palavra-chave edit, delete, update ou cancel. O evento apropriado é então gerado pelo controle DataList.
O Controle do Repetidor
O controle Repetidor também usa modelos para definir a vinculação personalizada. No entanto, ele não mostra os dados como registros individuais. Em vez disso, ele repete as linhas de dados conforme você especifica em seu modelo. Isso permite que você crie uma única linha de dados e repita em sua página.
O controle Repetidor é um modelo somente leitura . Ou seja, ele suporta apenas o ItemTemplate. Não oferece suporte implícito para edição, inserção e exclusão. Você deve considerar um dos outros controles se precisar dessa funcionalidade, caso contrário , terá que codificá-lo sozinho para o controle Repetidor.
As descrições acima são do livro Desenvolvimento de aplicativos da Web do Exame 70-515 MCTS com o Microsoft.NET Framework 4 .
O DataGrid nem mesmo é mencionado neste livro e foi substituído por GridViews populares e respondido de maneira agradável por outros usuários
fonte
De fato! Eu escrevi sobre as diferenças entre as ferramentas de dados do ASP.NET 4.0 . Basicamente, os gridviews são a maneira mais poderosa de apresentar informações tabulares, enquanto os controles ListView são para exibições mais complicadas de dados repetidos. Se eu estivesse aconselhando um novato em ASP.NET, diria a ele para aprender o gridviews de dentro para fora e ignorar os outros controles para começar.
fonte
Tudo se resume a como você deseja organizar seus dados.
Se você precisa controlar o layout (como tabelas versus CSS versus qualquer outro), quando usar um Repetidor ou ListView. Entre os dois, ListView oferece muito mais eventos e comandos embutidos para edição, seleção e inserção. Adicionalmente, funcionalidade de paginação e agrupamento. Um Repetidor é extremamente simples, ele repete um layout com os dados. Como você está construindo o layout manualmente, o Listview e o Repetidor requerem mais código.
GridView é um DataGrid atualizado, portanto, dificilmente há razão para usar o DataGrid. GridView funciona muito bem quando conectado a fontes de dados ASP.NET padrão, mas restringe você a um layout tabular com muitas regras de layout. GridView requer menos código, já que você está usando um layout integrado.
fonte