Appointment data is not stored in viewstate, so you must data bind to your appointments on each request to the server (i.e., remove the if !IsPostBack conditional).