ASP .NET - Como obter valores da linha selecionada em um GridView


Nesta dica você vai aprender como obter os valores da linha selecionada em um controle GridView exibindo-os em controles TextBox usando a linguagem C# e VB .NET.

No exemplo usado neste artigo vou usar o Visual Web Developer 2010 Express Edition.

Abra o VWD 2010 Express e crie um novo web site com o nome ObterValorLinhaSelecionada.

No menu File -> New web Site , selecione a linguagem Visual C# e o template ASP .NET Empty Web Site e informe o nome conforme indicado;

No menu Web Site -> Add New Item e escolha o template Web Form e aceite o nome padrão Default.aspx para incluir uma página no web site.

Agora vamos incluir um controle SqlDataSource de forma a termos uma fonte de dados para preencher o controle GridView e aceitar o nome padrão SqlDataSource1.

Vamos usar como fonte de dados a tabela Products do banco de dados Northwind.mdf.

Inclua o controle na página e a seguir clique na opção Configure Data Source...

Na janela do assistente selecione a conexão com o Northwind.mdf (se ela não existir clique em New Connection para criar) e clique em Next>;

A seguir selecione a tabela Products conforme a figura abaixo e clique em Next>;

Para encerrar clique em Finish;

Selecione o controle GridView e em GridView Tasks selecione Choose Data Source e escolha SqlDataSource1 para vincular o controle a fonte de dados;

Selecione o GridView novamente e clique na opção Edit Columns e vamos excluir algumas colunas para exibir no grid somente as que vemos na figura abaixo:

Agora inclua abaixo do GridView 3 controles Labels e 3 controles TextBox (IDs = TextBox1,TextBox2,TextBox3) conforme o leiaute abaixo:

Vamos usar evento SelectedIndexChanged do controle GridView para colocar o código que irá capturar as informações da linha selecionada e exibir os valores nos controles TextBox da página.

Clique duas vezes sobre o controle GridView e no evento SelectedIndexChanged digite o seguinte código:

  protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        TextBox1.Text = GridView1.SelectedRow.Cells[1].Text;
        TextBox2.Text = GridView1.SelectedRow.Cells[2].Text;
        TextBox3.Text = GridView1.SelectedRow.Cells[5].Text;
    }

O mesmo código acima para a versão na linguagem VB .NET seria:

  Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs)
       TextBox1.Text = GridView1.SelectedRow.Cells(1).Text
       TextBox2.Text = GridView1.SelectedRow.Cells(2).Text
       TextBox3.Text = GridView1.SelectedRow.Cells(5).Text
   End Sub

Execute o web site e selecione algumas linhas verificando o resultado.

 Simples, simples assim...

Pegue o projeto completo aqui: obterValorLinhaSelecionada.zip

Eu sei é apenas C# e VB .NET, mas eu gosto...

Referências:

José Carlos Macoratti