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