强制回发

时间:2011-11-21 09:55:16

标签: c# asp.net postback

有没有办法在代码中强制回发?

我希望强制从我的asp.net Web应用程序后面的c#代码中的方法引发回发。

8 个答案:

答案 0 :(得分:9)

在表单提交后触发回发,因此它与客户端操作有关... 看看这里解释一下: ASP.NET - Is it possible to trigger a postback from server code?

这里有一个解决方案: http://forums.asp.net/t/928411.aspx/1

答案 1 :(得分:8)

您可以尝试重定向到同一页面。

Response.Redirect(Request.RawUrl);

答案 2 :(得分:6)

简单:

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

答案 3 :(得分:2)

这是mamoo提到的http://forums.asp.net/t/928411.aspx/1解决方案 - 以防网站脱机。对我来说很好。

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());

答案 4 :(得分:1)

不,不是来自背后的代码。回发是使用Http POST方法从客户端上的页面发回到服务器上的请求。在服务器端,您可以请求重定向,但将是Http GET请求。

答案 5 :(得分:1)

您可以使用数据绑定控件,如RepeaterListView,根据需要将其重新绑定到控件属性列表,并让它动态生成控件。

作为替代方案,您可以使用Response.Redirect(".")重新加载同一页面。

答案 6 :(得分:0)

您可以从Page_Load事件手动调用PostBack调用的方法:

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

但是,如果你的意思是你可以将Page.IsPostBack属性设置为true而没有真正的回复,那么答案就是否定。

答案 7 :(得分:0)

使用Server.Transfer(“YourCurrentPage.aspx”);我们可以轻松实现这一点,它比Response.Redirect(); coz Server.Transfer()将为您节省往返时间。