zoukankan      html  css  js  c++  java
  • asp.net后台操作javascript:confirm返回值(转)

    在asp.net中使用confirm可以分为两种:

    1.没有使用ajax,confirm会引起也面刷新

    2.使用了ajax,不会刷新

    A.没有使用ajax,可以用StringBuilder来完成.

    (一)asp.net用StringBuilder控制后台操作javascript:confirm返回值,此方法比较烦琐
    1.后台启动事件

            StringBuilder sb = new StringBuilder();
            sb.Append("<script language='javascript'>");
            sb.Append("var val=window.confirm('Are you sure!');");
            sb.Append("window.document.getElementById('TextBox1').value=val;");
            sb.Append("__doPostBack('TextBox1','');");
            sb.Append("</script>");
            this.RegisterStartupScript(System.Guid.NewGuid().ToString(), sb.ToString());
    2.前台代码:
     <asp:TextBox ID="TextBox1" runat="server"   AutoPostBack="true" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
    3.文本框OnTextChanged="TextBox1_TextChanged"的后台事件代码
      protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            if (((TextBox)(sender)).Text != "")
            {
                if (((TextBox)(sender)).Text.ToUpper() == "TRUE")
                {
                    //确定后执行另一个事件/方法 
                }
                if (((TextBox)(sender)).Text.ToUpper() == "FALSE")
                {
                    //取消后执行另一个事件/方法  

                }

            }   
        }
    该事件也可以写成其它的方法驱动。只是判断TexBox1的值。
    注意:该事件由AutoPostBack="true"引起页面刷新,全局变量丢失,最好使用session变量来保存需要存储的值。

    (二)通过前台Javascript来确定后台执行的方法,也就多了个OnClientClick事件此方法最简单

    前台按钮事件

       <asp:Button ID="bt_DeleteButton" runat="server" OnClick="bt_DeleteButton_Click" OnClientClick="if(confirm('调用后台bt_DeleteButton_Click事件,确定继续吗?')){return true;}else{return false;}" Text="删除" Visible="False" />

     就在页面上添加

      a.OnClick后台事件,

      b.OnClientClick事件,javascript的confirm,选择 确定后执行 OnClick后台是事件bt_DeleteButton_Click

    B:使用了Ajax控件的页面

    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "", "alert('提示');if(confirm('是否继续执行yes)){alert('本页面继续添加')}else{window.open('productManage.aspx','_blank');}", true);

     

    我们可能会遇到在.net后台弹出confirm对话框,然后点击确定,执行一段代码,点击取消,执行另一段代码,当然,在前台也是可以弹出confirm对话框的,但有的时候可能涉及到计算,或者取页面数据,但前台不好获取,这时候就要在后台执行这个动作了。

    弹出confirm对话框我们可以这样做:

    在页面上放置一个Literal控件,然后在后台赋值:

    this.ltlMsg.Text = "<script language='javascript'>if(confirm('确认的消息')){ document.getElementById('cmdClose').click();}</script>";

    这个看到有一个

    document.getElementById('cmdClose').click();

    这个就是控制流程走向的关键,其实这里是页面上放置了一个button,而且给该button定义了click事件,只不过这个button的宽度高度都是0,我们在页面上是看不到的,但它的click事件就是我们在弹出confirm对话框要做的事,当然点击取消我们可以做另一件事,无非再加一个button。

     

     

  • 相关阅读:
    CodeForces 279B Books (滑动窗口)
    LightOJ 1010 Knights in Chessboard (规律)
    HDU 2665 Kth number (主席树)
    URAL 2014 Zhenya moves from parents (线段树)
    HDU 5973 Game of Taking Stones (威佐夫博弈+高精度)
    HDU 5974 A Simple Math Problem (解方程)
    HDU 5980 Find Small A (水题)
    Spring入门篇——第5章 Spring AOP基本概念
    Java入门第二季——第4章 多态
    Spring入门篇——第4章 Spring Bean装配(下)
  • 原文地址:https://www.cnblogs.com/aqbyygyyga/p/2498601.html
Copyright © 2011-2022 走看看