Allora io solitamente faccio così:
All'immagebutton setto i due attributi:
- OnCommand="modificaRiga" //e' il nome della funzione che chiamo
- CommandArgument='<%# DataBinder.Eval(Container, "DataItem.IDArticolo") %>' //IDArticolo é la chiave primaria
ATTENZIONE che la SELECT con la quale crei il datagrid (datagrid1.datasource=ds) deve anche darti la chiave primaria, altrimenti ti viene generato un errore a runtime che ti notifica che la riga del datagrid non contiene niente chiamato IDArticolo.
Ciao