Infatti non credo sia la strada giusta.
Ora non ho tempo di proseguire, ma fai un ultimo tentativo prima di abbandonare la HLF e passare ad un piu' semplice TemplateField in cui puoi mettere un controllo con un tuo ID.

codice:
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ButtonField Dettaglio = new ButtonField();                
                Dettaglio.ButtonType = ButtonType.Link;
                Dettaglio.HeaderText = "Opzioni";               
                Dettaglio.DataTextField = "KMovimenti";
                Dettaglio.CommandName = "cn_dettaglio";

                Gv_ToDoList.Columns.Insert(0, Dettaglio);
            }
        }

        protected void gv_rowcommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "cn_dettaglio")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                GridViewRow row = gv.Rows[index];

                LinkButton lb = new LinkButton();
                lb = (LinkButton)row.Cells[1].Controls[0];

                Response.Redirect("WebForm2.aspx?id=" + lb.Text);

                // ... 
            }
        }
..impostando il _rowcommand alla tua grid. (attenzione, il <row.Cells[1]> è per la MIA...)