My DataGrid's event handlers looks like:
Page_Load()
{
...// BREAKPONT PageLoad
}

Grid_ItemDataBound(...)
{
switch (e.Item.ItemType):
{
case ListItemType.Footer:
...// BREAKPONT FooterBound
break;
case ...// other item types
}
}

Grid_ItemCreated(...)
{
if (e.Item.ItemType == ListItemType.Pager)
{
...// BREAKPONT PagerCreated
}
}

During debug session I put 2 breakpoints as shown above. And I noted strange
things:
1. On the first time, events are called in this order:
PageLoad, PagerCreated, FooterBound, PagerCreated.
I.e. Pager item created event raised 2 times!
2. After postback they are called:
PagerCreated, PagerCreated, PageLoad, PagerCreated, FooterBound,
PagerCreated
Now Pager item created event raised 4 times!!!

What is happening?

P.S. Can anybody recommend me any reference about event calling in ASP.NET
which explains all above things?