In pratica, se ho capito bene, tu vorresti estrarre semplicemente l'id del campo selezionato e poi gestirtelo come vuoi. Giusto?
Se sì allora fai così... Aggiungi un templatefield con un link button alla gridview. Ricordati di aggiungere il commandname="select".
codice:
<asp:TemplateField HeaderText="Modifica">
<ItemTemplate>
<asp:LinkButton ID="lbnModifica" runat="server" Text="Modifica" CommandName="Select"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
Poi da code behind aggiungi questo codice nell'evento SelectedIndexChanged della gridview e così estrarrai l'id della riga selezionata.
codice:
int val = Convert.ToInt32(idGridView.SelectedDataKey.Value);
Se poi vuoi usare la stessa pagina della gridview per far visualizzare i dettagli non saprei come aiutarti, anche perchè non mi è mai capitato di farlo. Comunque penso che la logica sia la stessa dell'altro metodo. Solo che in questo caso dovresti crearti le texbox a runtime ma non sono sicuro che si faccia effettivamente così