Я знаю, это было больше года, но это может помочь кому-то еще:
Я решил свою проблему (которая, как мне кажется, может совпадать с вашей), добавив две разные кнопки, одну внутри панели обновления и одну снаружи, но скрытую. Пользователь нажимает один на панели обновления и, если все в порядке, также выполняет следующий код
ScriptManager.RegisterStartupScript(this, typeof(SpecimenTestExport), "fireExport", ClientScript.GetPostBackEventReference(this.btnSecondButton, ""), true);
, в результате чего вторая кнопка срабатывает, как только асинхронная обратная передача завершена.
Надеюсь, это кому-нибудь поможет!