A diferença entre um DataGrid e um GridView em ASP.NET?
Qual é a diferença entre estes 2 ASP.NET controlos? Quais são as vantagens ou desvantagens de ambos? Um é mais rápido? Mais novo? Mais fácil de manter?
O resumo intellisense para os controles não parece descrever nenhum diferença entre os dois. Ambos podem visualizar, editar e ordenar dados e gerar automaticamente colunas no tempo de execução.Edit: Visual Studio 2008 já não Lista DataGrid como um controlo disponível na caixa de ferramentas. Ele ainda está disponível (para suporte legado, eu presumo) se você digitar a mão no entanto.
8 answers
DataGrid foi um ASP.NET 1.1 controlo, ainda suportado. O GridView chegou ao 2. 0, tornando certas tarefas mais simples adicionou diferentes funcionalidades de base de dados:
Esta ligação tem uma comparação das funcionalidades DataGrid e GridView -
Https://msdn.microsoft.com/en-us/library/05yye6k9 (V = vs. 100).aspx
O DataGrid estava originalmente em. Net 1.0. O GridView foi introduzido (e substituiu o DataGrid) no.NET 2.0. Eles fornecem funcionalidades quase idênticas.
O controlo GridView
é o sucessor do controlo DataGrid
. Como o controle DataGrid
, o controle GridView
foi projetado para exibir dados em uma tabela HTML. Quando ligado a uma fonte de dados, o DataGrid
e GridView
controlam cada uma mostra uma linha de um DataSource
como uma linha numa tabela de saída.
Ambos os controlos DataGrid
e GridView
são derivados da classe WebControl
. Embora tenha um modelo de objeto semelhante ao do controle DataGrid
, o Controle de GridView também tem uma série de novas características e vantagens sobre o controlo DataGrid
, que incluem:
- Capacidades de design-Tempo Mais Ricas.
- capacidade melhorada de ligação à fonte de dados.
- tratamento automático da ordenação, chamada de pessoas, actualizações e apagamentos.
- tipos de colunas adicionais e operações de colunas de projecto-tempo.
- uma interface personalizada de utilizador do pager (UI) com a propriedade PagerTemplate.
As Diferenças entre o controlo GridView
e o controlo DataGrid
incluem:
- diferente suporte personalizado de chamada de pessoas.
- diferentes modelos de eventos.
A ordenação, a chamada de pessoas e a edição dos dados no local requerem codificação adicional ao usar o controlo DataGrid
. O controlo GridView
permite-lhe adicionar capacidades de ordenação, paginação e edição sem escrever nenhum código. Em vez disso, você pode automatizar essas tarefas, juntamente com outras tarefas comuns, como a ligação de dados a uma fonte de dados, definindo propriedades no controle.
A principal diferença reside na IIRC da administração do Estado de visão. O DataGrid requer o ViewState ligado para ter recursos de edição e ordenação.
Uma diferença fundamental em termos de segurança é que o DataGrid usa uma coluna encadeada que não code os dados encadernados. Também não há propriedade para ligar ou desligar o HtmlEncoding, por isso tens de o fazer em código de alguma forma.
O GridView usa o BoundField, que faz o HtmlEncode por omissão nos dados do bound e tem uma propriedade do HtmlEncode se precisar de o desligar.
Alguma diferença básica entre a grelha e a vista de detalhes
O controlo do GridView também tem uma série de novas funcionalidades e vantagens sobre o controlo do DataGrid, que incluem:
· capacidades de design-Tempo Mais Ricas. * Melhoria das capacidades de ligação da fonte de dados. * Tratamento automático de ordenação, paging, atualizações e apagamentos. * Tipos de colunas adicionais e operações de colunas de projeto-Tempo. · Uma interface personalizada de usuário de pager (UI) com a propriedade PagerTemplate.
As Diferenças entre o controlo de grelha e o controlo de DataGrid incluem:: * Suporte de paging personalizado diferente. * Diferentes modelos de eventos.
Uma das diferenças é a saída HTML. Um 'datagrid' irá produzir ' TD 'para o cabeçalho e uma 'gridview' irá produzir 'TH'. isto poderá causar alterações não intuitivas no ecrã.