A gridview um componente que nos proporciona uma grande quantidade de recursos,
fazendo com que em muitos casos possamos us-la sem escrever uma linha sequer de cdigo.
Mas existem ocasies em que precisamos de funcionalidades que a gridview no nos proporciona diretamente. Um desses casos quando adicionamos um link de excluso na gridview, mas queremos que o usurio confirme de fato a excluso. Felizmente, a gridview bastante customizvel, e com pouco trabalho conseguimos o efeito desejado.
Para esse exemplo estou usando o Visual Studio 2008, mas com poucas modificaes possvel obter o mesmo resultado em verses anteriores.
Primeiramente, Crie um novo website. Agora, clique na aba "Server Explorer", conforme a figura abaixo:
Clique com o boto direito em "Data Connections" e em seguida em "Add Connection":
Em nosso exemplo usaremos o banco de dados de exemplo Northwind. Caso no o tenha instalado, pode baix-lo (juntamente com o banco Pubs) aqui. Crie a Data Connection e renomeie-a para Northwind:
Aps criar a connection, v no menu Website/Add New Item. Marque o item "LINQ to SQL Classes" e em Name coloque "Northwind.dbml":
Caso apareca uma caixa perguntando se deseja adicionar o arquivo na pasta App_Code, confirme. Repare que apareceu a janela de designer do dbml:
Voltando ao Server Explorer, expanda a connection Northwind, e logo aps, expanda o item Tables. Arraste a tabela "Customers" para o designer, conforme mostrado acima. Abra agora a pgina padro (Default.aspx, que no caso renomeei par grid.aspx) do website, e adicione nela (pela Toolbox) uma LinqDataSource. Clique na seta que aparece na datasource criada e marque "Enable Delete". Agora, clique em "Configure datasource":
Como s temos um DataContext criado, ele estar selecionado automaticamente. Clique em next:
Semelhantemente ao ocorrido no passo anterior, a nica tabela (Customers) que adicionamos ao dbml estar selecionada. Clique em "Finish". Agora, adicione uma gridview pgina. Semelhantemente ao que fizemos com a linqdatasource, selecione a gridview e clique na seta (tasks), e em "Choose Data Source" selecione a Linqdatasource que acabamos de criar. Marque tambm a caixa "Enable Deleting". Com isso, ser criada uma coluna com o link "Delete" para cada registro:
Repare que as colunas foram adicionadas automaticamente gridview. Vamos ento programao. Para que possamos acrescentar o javascript a cada linha da gridview, usaremos o evento RowDataBound. Acrescente o cdigo ao evento:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { LinkButton lkbDelete; if (e.Row.RowType == DataControlRowType.DataRow) { lkbDelete = (LinkButton)e.Row.Cells[0].Controls[0]; //fazemos uma referncia ao boto delete criado automaticamente string cliente = e.Row.Cells[1].Text; string prompt = "javascript:return confirm('Deseja realmente excluir o cliente " + cliente + "?')";
lkbDelete.Attributes.Add("onClick", prompt); } }
Aps acrescentar o cdigo, execute o projeto. Clique em algum link "delete" na gridview e veja que, caso clique em cancelar, nada acontece. Se clicar em Ok, o registro ser removido:
Ateno: Como estamos usando o exemplo Northwind, ao confirmar uma excluso provvel que ocorra um erro, pois os ndices das tabelas ligadas tabela Customers no esto configurados para propagao da excluso. Caso queira evitar esse erro, altere os ndices atravs do gerenciador do SQL Server ou de outra ferramenta.
Fcil, no? Em breve espero postar mais artigos sobre a gridview. Os nossos leitores gostaram igualmente de As melhores frases para se usar no trabalho (principalmente quando a coisa aperta) O Desabafo de um Desenvolvedor Web Decepcionado com a classe Te lembra algo? Postado por Wagner s 3:45 PM Marcadores: Asp.Net , C# , Gridview , LINQ , Programao , Sql Server Artigos Relacionados Grid para PHP Removendo subpastas. Parte 2 - uma forma mais "primitiva" Removendo subpastas. Parte 1 - usando recursos existentes. Microsoft WebsiteSpark Exportando para Excel Criando um site com DotNetNuke. Parte final - Skins e Containers. Criando um site com DotNetNuke. Parte 4 - Adicionando pginas / trabalhando com mdulos. Criando um site com DotNetNuke. Parte 3 - Trabalhando com o contedo Criando um site com DotNetNuke. Parte 2 - Menus administrativos Criando um site com DotNetNuke. Parte 1 - Instalao e viso geral Gridview: Confirmao de excluso via Javascript O Desabafo de um Desenvolvedor Web O Desabafo de um Web Designer 1 comentrios: Annimo disse... Valeu tava precisando disso.. resolveu meu problema. 2 de maio de 2009 19:46 Postar um comentrio Links para esta postagem Criar um link Postagem mais recente Postagem mais antiga Incio Assinar: Postar comentrios (Atom)
Tags Carreira Humor Programao Decepcionado com a Classe Tempo Gerenciamento Asp.Net C# CMS DotNetNuke Python Recursividade Sql Server Webdesign Arquivos Pastas Usurios Windows Forms .Net CSS Empreendedorismo Excel Expression Web Grid Gridview IDE Incio LINQ Linux MYSQL Microsoft PHP Subversion Tutorial UML Vb.Net Visual Studio Windows XML free opensource programas segurana senhas utilitrios wxPython Carreira (15) Humor (14) Programao (10) Decepcionado com a Classe (9) Tempo (9) Gerenciamento (8) Asp.Net (7) C# (5) CMS (5) DotNetNuke (5) Python (3) Recursividade (3) Sql Server (3) Webdesign (3) Arquivos (2) Pastas (2) Usurios (2) Windows Forms (2) .Net (1) CSS (1) Empreendedorismo (1) Excel (1) Expression Web (1) Grid (1) Gridview (1) IDE (1) Incio (1) LINQ (1) Linux (1) MYSQL (1) Microsoft (1) PHP (1) Subversion (1) Tutorial (1) UML (1) Vb.Net (1) Visual Studio (1) Windows (1) XML (1) free (1) opensource (1) programas (1) segurana (1) senhas (1) utilitrios (1) wxPython (1)
Blog Archive
Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
View Archive
O Desabafo de um Desenvolvedor Web O Desabafo de um Web Designer
partner-pub-0669 ISO-8859-1 Pesquisar
recursividade.we
Este blog possui atualmente: 27 Comentrios em 35 Artigos! Widget UsurioCompulsivo
Quem sou eu
Wagner Ponciano de Souza Visualizar meu perfil completo
Entre em contato Aguarde, preparando novo formulrio. Obrigado.