PageLoad is happening before your postback event, change your event to PreRender:
protected void Page_PreRender(object sender, EventArgs e)
{
Repeater1.DataSource = listOfData;
Repeater1.DataBind();
}
This will bind your repeater after the postback and maintain your postback value.
Edit:
Here's a good picture showing the entire WebForms page lifecycle:
As you can see
ProcessPostData
event is called AFTER Load
event.
So you want to bind your Repeater
after the PostData has been processed.
This can be done on PreRender