First about tables, you dont have to use tables, it is merely one of the ways to layout an application (though it is becoming a bit outdated and is a little bit arcane), i would suggest using whatever you are most comfortable with using.
Your viewstate question is not one that can be answered in a few sentences but more or less it breaks down like this: HTTP is a stateless medium meaning that it has no way of telling what kind of infromation you entered into a web form, thats where ViewState comes in. When you post back a form to the server all of that data in the web form is stored to the viewstate and when the page is reloaded (unless you navigate away from the page) those values will be persisted. To answer your question: "why dont you just store it on the server" the reason is because it would consume resources! Imagine if you had 500 people accessing the same webform and all of that data was being saved to the server, whether or not it was ever actually processed, it would still be there. You can, however, disable viewstate and you are free to but it is more of a convience for a user if those values were persisted. (e.g. you have a lengthy form the person has to fill out, this misprint there phone number this causes your validation functions to go off and clears the webform, your user is going to be upset)
You can, however, enable session state to be served from a SQL Server, though that is really out of scope for this post.
As a Novice and even an intermediate programmer the web resources are vast when it comes to this topic:
Just to name a few. As you move up the metaphorical ladder and become a more experienced programmer you will find that topics relating to what you are doing will slim out some (In regards to the more advanced areas of .NET) this inevitably is what will either make you a "real programmer" or simply classifiy you as someone who goes to code project and just ripes source code, compiles, and goes. Best of luck to you.
"The one language all programmers understand is profanity."