![]()
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PostBack.aspx.cs" Inherits="WebApplication.PostBack" EnableEventValidation="false" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnOK" runat="server" Text="确认" Width="60" onclick="btnOK_Click" />
<br />
<a href="#" onclick="document.getElementById('btnOK').click()">触发服务器端按钮事件</a>
<br />
<a href="#" onclick="<%=Postback()%>">触发服务器端按钮事件2</a>
<br />
<asp:Button ID="btnSubmit" runat="server" Text="提交" Width="60" OnClick="btnSubmit_Click" />
<br />
<asp:Button ID="btnPostBack" runat="server" OnClick="btnPostBack_Click" Text="doPostBack方法1" />
<asp:Button ID="btnPostBack2" runat="server" OnClick="btnPostBack2_Click" Text="doPostBack方法2" /><asp:HiddenField ID="HiddenField1" runat="server" Value="0" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button id="btnAdd" runat="server" Text="UpdatePanel 中的Button" onclick="btnAdd_Click" />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnAdd" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
</form>
</body>
</html>
前端HTML
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication
{
public partial class PostBack : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Response.Write(this.GetType().Assembly.Location);
this.btnSubmit.Attributes.Add("onclick", this.Page.ClientScript.GetPostBackEventReference(btnSubmit, "") + ";this.disabled=true;this.value='wait...' ");
btnAdd.Attributes.Add("onclick", "this.disabled=true;this.value='wait...';" + this.Page.ClientScript.GetPostBackClientHyperlink(btnAdd, " "));
}
protected void btnOK_Click(object sender, EventArgs e)
{
if (Request["__EVENTARGUMENT"] == "haha")
{
Response.Write("这个是链接的PostBack");
}
else
{
Response.Write("这个不是链接的PostBack");
}
}
protected string Postback()
{
return this.Page.ClientScript.GetPostBackEventReference(btnOK, "haha");//通过__EVENTARGUMENT="haha"可以判断是不是点了那个链接的PostBack
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
double i, j, m;
for (i = 0; i < 50000000; i++)
{
i++;
}
for (j = 0; j < 50000000; i++)
{
j++;
}
for (m = 0; m < 50000000; i++)
{
m++;
}
this.Response.Write(i + j + m);
}
protected void btnPostBack_Click(object sender, EventArgs e)
{
if (Request["__EVENTARGUMENT"] == null || Request["__EVENTARGUMENT"] == string.Empty)
{
this.Response.Write("按钮点击出发");
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>if(confirm('确定继续吗?')){ __doPostBack('" + this.btnPostBack.UniqueID + "','AAAA');}</script>", false);
}
else if (Request["__EVENTARGUMENT"] == "AAAA")
{
this.Response.Write("<script>alert('doPostBack回传')</script>");
}
}
protected override void Render(HtmlTextWriter writer)
{
//this.ClientScript.RegisterForEventValidation(btnPostBack.UniqueID, "AAAA2");
base.Render(writer);
}
protected void btnPostBack2_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
if (HiddenField1.Value == "4")
{
this.Response.Write("<script>alert('doPostBack回传')</script>");
}
else
{
//btn.Click += new EventHandler(btnPostBack2_Click);
this.ClientScript.RegisterStartupScript(this.GetType(), "", "if(confirm('确定继续吗?')){document.getElementById(\"HiddenField1\").value='4';__doPostBack('" + btn.UniqueID + "','BBB'); }", true);
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
double i, j, m, k;
for (i = 0; i < 50000000; i++)
{
i++;
}
for (j = 0; j < 50000000; i++)
{
j++;
}
for (m = 0; m < 50000000; i++)
{
m++;
}
Label1.Text =(i + j + m).ToString();
//不会弹出
//this.ClientScript.RegisterStartupScript(this.GetType(), new Guid().ToString(), "alert('" + (i + j + m).ToString() + "')", true);
ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(Page), new Guid().ToString(), "alert('" + (i + j + m).ToString() + "')", true);
}
}
}