if(MyTable2.Rows.Count > 0)
{
   Response.Write("<script language='javascript'>if(window.confirm('记录已存在,是否覆盖?'));</script>");
}
else
{
  ......;
}
for (i=0;i< MyTable.Rows.Count;i++)
{
  ......
}我想实现弹出对话框,是,执行for {},否,就结束程序执行。现在我这样写,连对话框都跳不出。哪位能帮帮忙。谢谢

解决方案 »

  1.   

    對Web不是太熟﹐不過有點可以肯定﹐你的script標記之間不是完整的一個語句。
    另外﹐就你的意思的來看﹐方法是有問題的﹐要么就全部使用服務器端的方法﹐要么就在客戶角本中執行,想在客戶端讓用戶選擇﹐又不提交結果﹐服務器端怎么能得到結果呢﹖
      

  2.   

    方法1.
    在Page_Load中加入一行:  
    你按钮的ID.Attributes.Add("onclick", "return confirm('真的要删?');");之后在按钮的OnClick里写好你要做的事情,点按钮后弹出对话框,如课选是就执行OnClick里的代码,否则就不执行方法2.
    Response.Write("<script>yn = confirm('数据已添加成功,是否继续添加?');if(yn == false){这里放你写的代码如windows.close();}else{这里放你写的代码如windows.close();}<" + "/script>");
      

  3.   

    给你讲两种方法,一种是业务的方法但是比较好理解一点,一种是正规和可靠的方法但是有一个那些入门书上都不写的页面回发最为基本的概念:方法一:在你的页面上放一个Button,假设ID为theOkButton,它的服务器端事件处理代码用来处理选择“是”之后的处理,既你的for (i=0;i< MyTable.Rows.Count;i++)
    {
      ......
    }
    代码。此Button的style属性中display为none,注意不是设置其Visible为false,而是设置其客户端css使其隐藏。输出对话框脚本的代码:if(MyTable2.Rows.Count > 0)
    {
       Response.Write("<script language='javascript'>if(window.confirm('记录已存在,是否覆盖?'))"+this.Page.ClientScript.GetPostBackEventReference(theOkButton,"")+";</script>");
    }
    else
    {
      ......;
    }方法二:你的页面要使用 IPostbackEventHandler 接口,例如:
      public partial class _Default : System.Web.UI.Page,IPostBackEventHandler{...}实现此接口:    #region IPostBackEventHandler 成员    public void RaisePostBackEvent(string eventArgument)
        {
          if(eventArgument=="after_confirm")
          {
            for (i=0;i< MyTable.Rows.Count;i++)
            {
              ......
            }
          }
        }    #endregion最后,输出对话框脚本的代码:if(MyTable2.Rows.Count > 0)
    {
       Response.Write("<script language='javascript'>if(window.confirm('记录已存在,是否覆盖?'))"+this.Page.ClientScript.GetPostBackEventReference(this.Page,"after_confirm")+";</script>");
    }
    else
    {
      ......;
    }
    这最后一种方式,是任何控件postback响应触发事件的最直接的标准方式(此处没有什么别的控件需要响应事件,直接让页面响应事件)。参数“after_confirm”,是为了当页面上有多个不同逻辑都要让页面响应的时候,作为区分触发命令(相当于CommandArgument)。
      

  4.   

    一种是业务的方法但是比较好理解一点  -->  一种是业余的方法但是比较好理解一点
    使用一个在客户端隐藏的Button来作为向服务器端触发时间的引导,这对初学者比较容易想到。但是此方法其实最为繁琐。
      

  5.   

    为什么不用页面重定向方法?例如:if(MyTable2.Rows.Count > 0)
    {
       Response.Write("<script language='javascript'>if(window.confirm('记录已存在,是否覆盖?'))window.open('thisPage.aspx?confirm=yes');</script>");
    }
    else
    {
      ......;
    }
    这种页面重定向方法“太大胆”了,随便就把页面上的所有控件的状态丢掉了,所以只有那些喜欢给自己找理由的程序员才会使用“凑巧”可用的方法。而好的程序员,严格控制自己的程序尽量只做“恰当”的事情而不轻易破坏其它逻辑。
      

  6.   

    上面在javascript中写的页面重定向是指:  window.open('thisPage.aspx?confirm=yes','_self');或  window.location.href="thisPage.aspx?confirm=yes";这类代码。