Welcome 微信登录

首页 / 网页编程 / ASP.NET / Cross-Page Postback拾遗

Cross-Page Postback拾遗2011-10-14ASP.NET 2.0中加入的Cross-Page Postback机制让我们ASP.NET开发人员有了轻松的(无需自定义)跨页面发POST请求的方式。但在实际开发时,难免遇到点小问题。比如在点击按钮发生跨页提交的时候,想先弹出一个JavaScript的confirm对话框进行确认,用户如果OK,发生postback,如果Cancel掉,就停留在原页面不做任何操作,类似于我们在删除按钮上添加的客户端功能。此时,便事不由人了……

我们准备两个页面。在Default.aspx中,加入文本框、按钮,设置按钮跨页回送到Target.aspx:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Cross Page Post Back" PostBackUrl="~/Target.aspx" OnClientClick="return confirm("Are u sure?")" />

在Target.aspx.cs中,Find到Default.aspx里的TextBox,把值显示在Label上:

protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
Label1.Text = (PreviousPage.FindControl("TextBox1") as TextBox).Text;
}

运行,然后发现当我们点击Cancel的时候,确实可以Cancel掉,但是点OK,却无论如何都无法将请求发出去了。