Hi,
I went through your code and there is nothing wrong about it.
So, My answer is based on the last one liner you wrote:
You have set the auto post back true: That will be the source of the issue.
1) First of all, answer yourself Do you need a post back there?
- To me postback should be avoided.
2) You might disabled viewstate on your page and hence state of these controls is not retained across post backs. So set enable view state property to true in the aspx page in the @Page directive.
EnableViewState="true"
Just see if the above two points help you. Otherwise, please let me know.