2016-05-11 8 views
0

Я использую UdatePanel На стороне клиента и с помощью response.redirect в коде позади. Но это не работает из-за updatepanel. Есть ли способ реализовать response.redirect при использовании updatepanel.I googled, видел много ответов, но не получил точного ответа.Response.Redirect Не работает в панели обновления

<asp:UpdateProgress ID="UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel1" runat="server"> 
    <ProgressTemplate> 
     <div class="loading"> 
      <div class="loader"> 
       <center> 
     Please wait...<br /> 
     <img src="images/loadinfo.gif" alt="Loading..." /> 
     </center> 
      </div> 
     </div> 
    </ProgressTemplate> 
</asp:UpdateProgress> 

код за

protected void btnsubmit_Click(object sender, EventArgs e) 
{ 

      statuslabel.Text = "Updated Successfully,Redirecting...."; 
      Response.AddHeader("REFRESH", "2;URL=Printsticker.aspx?itemId=" + hdApplication.Value); 
} 

ответ

0

Вы можете использовать Response.Redirect:

По моим тестам, он работает на кнопку помещенную в UpdatePanel. Я использую ASP.NET 4.0, который может изменить ситуацию, согласно this article. Автор упоминает, что у него были проблемы с Response.Redirect и UpdatePanels в более ранних версиях фреймворка.

0

Поскольку панель обновления обновляется через вызовы AJAX, вы не можете действительно перенаправлять серверную сторону.

Но вы можете изменить местоположение с помощью клиентского сценария:

ClientScript.RegisterStartupScript(this.GetType(), "scr", string.Format("location.href='Printsticker.aspx?itemId={0}';", hdApplication.Value), true); 
+0

Существуют ли особые условия, в которых 'Response.Redirect' не работает? Когда я пытаюсь, я не вижу никаких проблем (из обработчика событий кнопки внутри UpdatePanel). – ConnorsFan

+0

@ConnorsFan, если вы на кнопке запускаете частичную обратную передачу UpdatePannel - нормальный жизненный цикл страницы не происходит, страница обновляется через вызовы AJAX, поэтому Response.Redirect не будет работать (хотя код будет компилироваться и не выдавать никаких ошибок) –

+0

Но я протестировать его и перенаправить. – ConnorsFan