GridView - criando coluna de imagem para comando

<< Click to Display Table of Contents >>

Navigation:  ASP.NET > ASP Controls > GridView >

GridView - criando coluna de imagem para comando

Previous pageReturn to chapter overviewNext page

Tela

 

gridview5

 

 

Default.aspx

 

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand"

          OnRowDataBound="GridView1_RowDataBound">

          <Columns>

              <asp:BoundField DataField="Id" HeaderText="Código" />

              <asp:BoundField DataField="Nome" HeaderText="Nome" />

              <asp:BoundField DataField="Valor" DataFormatString="{0:0.00}" HeaderText="Valor" />

              <asp:BoundField DataField="Data" DataFormatString="{0:dd/MMM/yy}" HeaderText="Data" />

              <asp:TemplateField HeaderText="Comando">

                  <ItemTemplate>

                      <center>

                          <asp:ImageButton ID="btExcluir" runat="server" ImageUrl="http://www.dreamstime.com/img/erase.gif"

                              CommandName="Excluir"></asp:ImageButton>

                      </center>

                  </ItemTemplate>

              </asp:TemplateField>

          </Columns>

      </asp:GridView>

 

Default.aspx.cs

 

using System;

using System.Web.UI.WebControls;

 

public partial class _Default : System.Web.UI.Page

{

  protected void Page_Load(object sender, EventArgs e)

   {

      if (!IsPostBack)

       {

           CarregarDados();

       }

   }

 

  void CarregarDados()

   {

       GridView1.DataSource = Pessoa.Get();

       GridView1.DataBind();

   }

 

  // evento executado para verificação dos "Command"

  protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

   {

      if (e.CommandName.Equals("Excluir"))

       {

          // pessoa a ser excluída

           Response.Write("Pessoa a excluir: " + e.CommandArgument.ToString());

       }

   }

 

  // evento executado 1x para cada linha

  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

   {

      // somente interessa os DataRow

      if (e.Row.RowType == DataControlRowType.DataRow)

       {

          // pessoa de cada linha (cast no DataItem)

          Pessoa pessoa = ((Pessoa)e.Row.DataItem);

 

          // atribui o argumento o id

           ((ImageButton)e.Row.FindControl("btExcluir")).CommandArgument = pessoa.Id.ToString();

          // cria no atributo onClick uma "Confirmação" em JavaScript

           ((ImageButton)e.Row.FindControl("btExcluir")).Attributes.Add("OnClick", "javascript:return confirm('Confirma a exclusão de " + pessoa.Nome + "?')");

       }

 

   }

}

 

Pessoa.cs

 

using System.Collections.Generic;

using System;

 

public class Pessoa

{

  public int Id { get; set; }

  public string Nome { get; set; }

  public decimal Valor { get; set; }

  public DateTime Data { get; set; }

 

  public static List<Pessoa> Get()

   {

      List<Pessoa> lista = new List<Pessoa>();

       lista.Add(new Pessoa() { Id = 1, Nome = "Junior", Valor = (decimal)10.02, Data = Convert.ToDateTime("01/01/2010") });

       lista.Add(new Pessoa() { Id = 2, Nome = "Flavio", Valor = (decimal)98.10, Data = Convert.ToDateTime("01/01/2009") });

       lista.Add(new Pessoa() { Id = 3, Nome = "Mario", Valor = (decimal)43.45, Data = Convert.ToDateTime("01/01/1990") });

       lista.Add(new Pessoa() { Id = 4, Nome = "Luidi", Valor = (decimal)99.25, Data = Convert.ToDateTime("01/01/1992") });

       lista.Add(new Pessoa() { Id = 5, Nome = "Peach", Valor = (decimal)76.44, Data = Convert.ToDateTime("01/01/1977") });

       lista.Add(new Pessoa() { Id = 6, Nome = "Toad", Valor = (decimal)98.30, Data = Convert.ToDateTime("01/01/1980") });

       lista.Add(new Pessoa() { Id = 7, Nome = "Rosalina", Valor = (decimal)25.12, Data = Convert.ToDateTime("01/01/2003") });

       lista.Add(new Pessoa() { Id = 8, Nome = "Inara", Valor = (decimal)78.99, Data = Convert.ToDateTime("01/01/2007") });

      return lista;

   }

}