.NET __doPostBack

<%@ 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);
        }
}    
}

 

posted on 2015-03-26 16:59  二狗你变了  阅读(196)  评论(0)    收藏  举报

导航