On top of Martin's approach you can use a label and keep your field as boundfield. But his approach is the correct way. Just saying mine will not be the best approach but it is still another solution to your question:
for (int i = 0; i < GridView1.Rows.Count; i++)
{
Label lbtn = new Label();
lbtn.CssClass = "lbtnStyle";
lbtn.ID = "lbtn" + GridView1.Rows[i].Cells[2].Text;
lbtn.Text = GridView1.Rows[i].Cells[2].Text;
lbtn.Attributes.Add("onClick", "javascript:window.open('Default.aspx')");
GridView1.Rows[i].Cells[2].Controls.Add(lbtn);
}
Good luck,
OI