2012-03-15 5 views
2

私のコードビハインドファイル内のイベントの中で、3秒後に特定のページにリダイレクトするスクリプトを実行したいと思います。下のPage.ClientScript行をsetTimeoutで使用することができますが、実際にsetTimeoutステートメントの内部に置いてこの作業を行うにはどうすればいいですか?イベントのjsコードでリダイレクト

リダイレクトに使用するコード行は、Page.ClientScript行で置き換えます。

ありがとうございます!

Page.ClientScript.RegisterStartupScript(this.GetType(), "redirect", "setTimeout('???', 3000);", true); 

Response.Redirect(String.Format("~/Edit.aspx?id={0}", movie.MovieID), false); 

注:私は運なしで次のことを試してみました:

Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "setTimeout('top.location.href = " + String.Format("~/Edit.aspx?id={0}", movie.MovieID) + "', 3000);", true); 

答えて

2
setTimeout("top.location.href = 'TARGET'", 3000); 

あなたがにリダイレクトしたいURLとTARGETを交換してください。

あなたは、分離コードから動的にターゲットURLを構築することができます:

string targetUrl = String.Format("/Edit.aspx?id={0}", movie.MovieID); 
string javaScript = "setTimeout(\"top.location.href = '" + targetUrl + "'\", 3000);"; 

ClientScript.RegisterStartupScript(typeof(Page), "redirect", javaScript, true); 
+0

感謝を。 Okeyですが、URLの一部である動的な数字(movieID)をどのように入れていますか? – holyredbeard

+0

私は試みました:Page.ClientScript.RegisterStartupScript(this.GetType()、 "alert"、 "setTimeout( 'top.location.href =" + String.Format( "〜/ Edit.aspx?id = {0}"、 movie.MovieID)+ "'、3000);"、true);それは動作していないようです:/ – holyredbeard

+0

@ JasonCraig、私はいくつかの新しいコードを掲載しました。 –