<< Click to Display Table of Contents >> GridView - colocando link em uma coluna Data |
![]() ![]() ![]() |
Tela
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:TemplateField HeaderText="Nome" >
<ItemTemplate>
<asp:HyperLink ID="lnkEditar" runat="server">Nome</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<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>
<asp:LinkButton ID="lbExcluir" runat="server" CommandName="Excluir">Excluir</asp:LinkButton>
</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);
// associa o link a um endereço passando para querystring o id
((HyperLink)e.Row.FindControl("lnkEditar")).NavigateUrl = "EditarCliente.aspx?id=" + pessoa.Id.ToString();
((HyperLink)e.Row.FindControl("lnkEditar")).Text = pessoa.Nome;
// atribui o argumento o id
((LinkButton)e.Row.FindControl("lbExcluir")).CommandArgument = pessoa.Id.ToString();
// cria no atributo onClick uma "Confirmação" em JavaScript
((LinkButton)e.Row.FindControl("lbExcluir")).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;
}
}