I find out a solution that works and that does not involve any particular code / overriding.
I was focussing on the single "automatically-generated" button but when I start thinking about areas and parents everything goes fine.
As solution I simply register the WHOLE GridView to the Script Manager, by this way, all the controller inside generates a full postback instead of a partial one.
In my Page_Load I have now:
ScriptManager.GetCurrent().RegisterPostBackControl(grd_Reports);