これは長いタイトルなので、ここで私は何をしているのですか? URLは、私がレポート表示するには、コードビハインドでボタンのクリックハンドラでこれをやっている:htmlをonload = document.form.submit()でHttpContext.Current.Responseに書き込んだ後に2回戻ることを避ける
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Write("<html><head></head>");
System.Web.HttpContext.Current.Response.Write("<body onload=\"document.mainform.submit(); \">");
System.Web.HttpContext.Current.Response.Write(string.Format(CultureInfo.InvariantCulture, "<form name=\"mainform\" method=\"post\" action=\"{0}\">", ReportURL));
foreach (string key in Params.Keys)
{
System.Web.HttpContext.Current.Response.Write(string.Format(CultureInfo.InvariantCulture, "<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", key, Params[key]));
}
System.Web.HttpContext.Current.Response.Write("</form>");
System.Web.HttpContext.Current.Response.Write("</body></html>");
これは素晴らしい作品を、私はレポートから戻ったとき、私はページに取られてる私だけこれはonloadイベントのためにフォームをすぐに提出します。私はそれを過ぎて戻るために2回本当にすぐにヒットすることができますが、これは理想的ではありません。
私はJavaScriptを使って新しいウィンドウを開いてみましたが、HTMLを書き込む前にClientScript.RegisterStartupScriptを使っていましたが、新しいウィンドウのHttpContextを取得する方法がわかりません。
ありがとうございますが、レポートパラメータは一部のページコンテンツに基づいて動的に作成されるため、クリックハンドラが必要です。 –
これを行うより直接的な方法があると思います。提出するフォームを書くことは、回避策のように思えます。多分あなたのコードをもっと投稿してください。 – mcknz