Another option - and approaching the problem from a slightly different angle - is to have a single ASPX page for all edit pages then create ASCX user controls that contain all the UI (and possibly processing logic) for each "logical" page.
For example, having a single Edit.aspx and UserEdit.ascx, CategoryEdit.ascx, WigitEdit.ascx, etc.
You can then pass in a parameter via a form post or querystring to identify the specific page to display. Processing code can be encapsulated in either the parent ASPX page or the individual user controls, however execution is initiated via the events of the buttons on the parent page.
Showing/hiding individual ASCX user controls can be done via dynamic control loading, placing all ASCX on the page and setting their Visible property, using the ASP.NET Multiview control (or others), etc. There are many options.
The key is to think carefully about what your trying to achieve and the overall design of your application. And remember, there's always more than one way to skin a cat.
Something else to consider is the ongoing maintenance effort of having a single button solution (and possible complexity of implementing it) versus a "copy and paste" type solution of implementing the same code across multiple pages. Sometimes "copy and paste" is best - at least in the beginning. If you have only 5 pages for example, the copy and paste approach may be best in the beginning and experience will give you more options in the future.