uso il findControl, ma questo funziona solo per controlli "liberi" nella pagina.
Se devi cercare un controllo all'interno di un gridView, devi farlo nell'evento Row_Created:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button mybtn = (Button)e.Row.FindControl("<IdBottone>");
if (mybtn != null)
//codice
}
}