1.Because your controls have
AutoPostBack
property on true, every type when you select a new item in any of them a
Postback
is generated and the entire page is sent to the web server and there the page events are executed (
PreInit
,
Init
,
Load
, etc). So maybe in your
Page_Load
event your controls are refilled with data and the first index is selected as default.
2.In order to solve this you should the the init part only first time (if the page is not post back) like in the next example:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
}