When studying for my certification exams, one thing I read about that seemed cool is SmartNavigaiton. I must confess that I had not used this feature at all in the past. For those who do not know about SmartNavigation, it is a page-level asp.net property you can set that is supposed to fix a number of web page post back woes. This easily set property is used to prevent the page flicker, and the loss of state related to where the user was on the form before the post back. This sounded like a great thing to try on a web form where there is a post back event linked to a text box TextChanged event. In my case, I am calculating a total cost based on the amounts entered in a few text boxes. Without SmartNavigation, when the page posted back, the focus was back to the top of the form. This is an annoying behavior to my users who had to enter a few different values that went into the total calculation. Each time they changed an amount field, they were popped back up to the top of the form.
SmartNavigation does take care of this issue, although if a user is in a text box that causes post back, and they tab off the field, the post back happens and SmartNavigation puts the focus back into the textbox they just left. This is better than moving them back to the top of the form. However, once I added a few more user controls and a style to my page, I ran into problems. I did not get a page error. Instead, IE reported a fatal error and my web browser closed. This happened to me repeatedly.
I followed my usual course of action when I run into crazy, unexpected behavior. I went to Google. I found a blog post by Karsten Samaschke dedicated to SmartNavigation, and why not to use it. In my situation, my style sheet may be the culprit. For now, I think I will turn SmartNavigation off.
And I was so excited about using something I learned while studying for the cert tests…