This is very unfortunate as CommandArgument is very convinient place for Eval("SomeDataField"). That way finding what was clicked would be very easy in ItemCommand and simmilar events (Delete, Insert...). Please consider this as nice feature for future implementations.
Finding what recordID is associated with ItemCommand is very dificult. This is what I do. Please correct if wrong: