johndehope3:I realize that the web and winforms are totally different.
I'm not quite sure you do, to be honest, from what you are saying.
My point is that if it's trivial and doable on winforms, and it has been for a long time, and it's trivial and doable in HTML (standards aside) then shouldn't we have it by now?
You can't just say "standards aside" as if that is a minor point. Whether it's doable on winforms is totally irrelevent - Microsoft did not create (X)HTML. The standards for web markup are goverened by
The World Wide Web Consortium. All Asp .NET controls HAVE to render valid HTML markup otherwise there is no guarantee how a browser will render it now or in the future. You can't just brush standards aside as if they don't matter. The web isn't a single platform running on one operating system - it encompasses many different browsers, some of which (such as screen readers or mobile browsers may not even render images).
To do what you want to do in ASP .NET you'd need to do something like this:
<asp:LinkButton ID="LinkButton1" runat="Server" OnClick="ButtonClick_Event">Text</asp:LinkButton>
<asp:ImageButton ID="ImageButton1" runat="Server" ImageUrl="image.gif" OnClick="ButtonClick_Event"></asp:ImageButton>
You could then write a custom server or user control to encapsulate those controls so they only expose the properties you wish to set once, such as the event when clicked.