2016-05-11 44 views
0

私はUdatePanelをクライアント側で使用していますが、コードの背後でresponse.redirectを使用しています。ただし、updatepanelのために動作しません。使用中にresponse.redirectを実装する方法はありますか私はgoogled、多くの答えを見たが、正確な答えを得ることはありません。あなたはResponse.Redirectを使用することができますResponse.Redirectが更新パネルで機能していない

protected void btnsubmit_Click(object sender, EventArgs e) 
{ 

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

答えて

0

背後

<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> 

コード:

私のテストによると、それは、UpdatePanelの内部のボタンに動作します。私はthis articleによると、違いを生む可能性のあるASP.NET 4.0を使用しています。著者は、フレームワークの古いバージョンでと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

関連する問題