Спасибо за ваш ответ, вы дали хорошее предложение, я также нашел решение для этой проблемы, которым я хочу поделиться, оно отлично работало для меня. Потому что моя проблема заключается в поддержании скрытых переменных и в server.transferпоэтому я поставил свой код так.Я поместил 2 кнопки, одну внутри панели обновлений, а другую - за пределами панели обновлений, поэтому, когда внутри кнопки панели обновления будет срабатывать событие нажатия, она будет выполнять операции с базой данных, а после успешных операций с БД она будет вызывать функцию java-скрипта со стороны сервера, например * 1001.*
protected void btnProceed_Click(object sender, EventArgs e)
{
//do your db operations
//After successful operations call java script
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "displayNote"," <script language='JavaScript'>onAsyncPostclick();</script>", false);
}
Код Java-сценария
<script type="text/javascript" language="javascript">
//ToDo: Used to call button on which we fire server.transfer
function onAsyncPostclick() {
var btnName = $get("<%=btnPostBack.ClientID%>").name;
__doPostBack(btnName, "");
}
</script>
В этом коде JavaScript я отправил обратный вызов другой кнопке, которая находится за пределами панели обновления и в событии нажатия этой кнопкиЯ запускаю сервер .Transfer на новую страницу, как это
//Implemented for button Submit (outside of Update panel) click
protected void btnSubmit_Click(object sender, EventArgs e)
{
Server.Transfer("NewPage.aspx");
}
Вышеописанным способом я могу вызвать server.transfer при нажатии обратной передачи с поддержкой ajax, и я сохранил свой код из исключения диспетчера запросов страниц. Я думаю, что этоОбойти проблему, но она отлично подходит для моих требований.