web-dev-qa-db-ja.com

ポストバックを強制する

コードでポストバックを強制する方法はありますか?

私は、asp.net Webアプリケーションの背後にあるc#コードのメソッドからポストバックを強制的に発生させたいと考えています。

16
shaun.breach

フォームの送信後にポストバックがトリガーされるため、クライアントアクションに関連しています...説明については、こちらをご覧ください: ASP.NET-サーバーコードからポストバックをトリガーすることは可能ですか?

そして、ここで解決策のために: http://forums.asp.net/t/928411.aspx/1

9
mamoo

より簡単:

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);
6
devilcius

ここでは http://forums.asp.net/t/928411.aspx/1 からの解決策がmamooによって言及されているように-Webサイトがオフラインになった場合に備えて。私にとってはうまくいきました。

StringBuilder sbScript = new StringBuilder();

sbScript.Append("<script language='JavaScript' type='text/javascript'>\n");
sbScript.Append("<!--\n");
sbScript.Append(this.GetPostBackEventReference(this, "PBArg") + ";\n");
sbScript.Append("// -->\n");
sbScript.Append("</script>\n");

this.RegisterStartupScript("AutoPostBackScript", sbScript.ToString());
2
Undercover1989

RepeaterListViewなどのデータバインドコントロールを使用し、必要に応じてコントロールプロパティのリストに再バインドし、コントロールを動的に生成できます。

別の方法として、Response.Redirect(".")を使用して同じページを再ロードできます。

1
Mihai

いいえ、コードビハインドからではありません。ポストバックは、Http POSTメソッドを使用して、サーバー上のクライアントへのクライアントページから開始されたリクエストです。サーバー側ではリダイレクトをリクエストできますが、これはHttp GETリクエストになります。

1
Andy Rose

Server.Transfer( "Your Current Page.aspx");を使用してこれは簡単に実現でき、Response.Redirect()よりも優れています。 coz Server.Transfer()はラウンドトリップを節約します。

1
user3631880

Page_LoadイベントからPostBackによって呼び出されたメソッドを手動で呼び出すことができます。

public void Page_Load(object sender, EventArgs e)
{
    MyPostBackMethod(sender, e);
}

しかし、実際のポストバックなしでPage.IsPostBackプロパティをtrueに設定できる場合、答えはノーです。

0
Shadow Wizard