There is a common pitfall faced by many ASP.NET developers that they bind their drop down lists in Page_Load and then expect it to maintain its SelectedIndexChanged state across page loads, which in reality never happens.
Actually, that binding should be done in Page_Init so that data binding and its associated event handlers are not being reloaded during Page_Load.
So conclusion is, always bind your drop down list in Page_Init() to avoid selecteditem text loss in asp.net drop down lists.