LostMonkey covered the first part of your question pretty well. I just want to complete some resources.
Here is an excellent resource on how to setup an ajax powered html form, i.e submit the form using an asynchronous request instead of a classic request.
http://www.jibbering.com/2002/4/httprequest.html
And here is another link with more resources and tutorials,
http://www.freeprogrammingresources.com/ajax-tutorial-libraries.html
And here is how to submit a from using POST instead of GET
http://www.devx.com/DevX/Tip/17500
In general remember this:
The core of any ajax enabled page is the XmlHttpRequest object. Start on this. Read tutorials on this javascript object and understand its mechanics. Then as a practice, try to design an html form where you post your data (either with GET or POST) to a server side script (be it ASP, PHP whatever...) using xmlhttprequest to send it asynchronously. You will notice two things compared to the classic method.
1. Only the part of the page that needs to be updated is changed. You do not see any page refresh and this makes you whole application much more desktop like.
2. Since the html page does not refresh its entire contents after submission you will see that any data typed in the form are preserved. There is no viewstate involved here or any other technique for this to happen. Your form data are preserved onnly because only part of the page has been resubmitted i.e. the server's response did not contain the code for the whole page... just the code for the part of the page that needs to be changed.
After you do all this you are ready to have a look at some pretty impressive widgets that are using ajax to offer a much more dekstop like experience. For example,
http://www.activewidgets.com/grid/
You can also have a look at some proprietary APIs that wrap the xmlhttprequest object and offer some build in widgets like the YAHOO API (but it is not the only one).
Good luck!