When items are data bound, their IDs should be stored in the ViewState so the next time they are recreated (upon a postback), they have the same IDs, so postback events can be raised. Also, when a new datasource is provided to the tilelist, keeping track of the IDs will let the control create tiles with the same IDs that were used instead of incremental ones. Both of these will prevent the tiles ID change in the first two page loads after a DataBind() call. Note that this applies only for the case when AppendDataBoundItems is false; when it is true new datasources should only add items. A workaround is to set IDs to the tiles manually when they are created (this can be done with a simple counter variable). To accommodate for rebinding the tilelist, its controls collection must be cleared prior to databinding as a workaround. A sample is attached that shows these in action.