当前位置:编程学习 > C#/ASP.NET >>

自动弹出窗口问题

    protected void Button1_Click1(object sender, EventArgs e)
    {
        string Title = txtTitle.Text;
        string Content = this.WebEditor1.Text;
   
        Model model = new Model();
        model.Title=Title;
        model.Content=Content;
        
        try
        {
            CatalogDataBase.AddArticle(model);
            MessageBox.Show(this, "添加文章成功!");
            Response.Redirect("Article_Add.aspx");
        }
        catch
        {
            MessageBox.Show(this, "添加文章失败!");
        }

    }

以下是MessageBox类的代码
    public class MessageBox
    {
        public static void Show(System.Web.UI.Page page, string msg)
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), "", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");
        }
    }

为什么添加失败就能弹出窗口.
而添加成功了却不能弹出添加成功窗口.. --------------------编程问答-------------------- 因为有 Response.Redirect("Article_Add.aspx"); 
所以直接执行Response.Redirect了 --------------------编程问答-------------------- 试着把 Response.Redirect("Article_Add.aspx"); 去掉
换成Response.write("<script>window.open('Article_Add.aspx')</script>");试试
--------------------编程问答-------------------- Response.write(" <script>alert('添加文章成功');window.location='Article_Add.aspx'; </script>"); --------------------编程问答-------------------- Response.write("  <script>alert('添加文章成功');window.location='Article_Add.aspx';  </script>");
这句正解!

MessageBox.Show(this, "添加文章成功!"); 
Response.Redirect("Article_Add.aspx"); 
这种方式有两个问题:
一、使用的MessageBox类是WinForm的,不好,要使用web的方式,就是alert方式;
二、在弹出提示框之后,页面马上就跳转了,所以看不见提示信息。 --------------------编程问答-------------------- 你把 Response.Redirect("Article_Add.aspx"); 
改写成 Server.Transfer("Article_Add.aspx");
试一试 --------------------编程问答-------------------- Response.Redirect("Article_Add.aspx"); 
很正常啊,应该不会错,

LZ检查过CatalogDataBase.AddArticle(model); 没有?
错误应该在这里冒出来的吧, --------------------编程问答--------------------   try 
        { 
            CatalogDataBase.AddArticle(model); 
MessageBox.Show..去掉
 换 Response.write("<script>alert('添加文章成功');window.location='Article_Add.aspx'; </script>"); 

            Response.Redirect("Article_Add.aspx"); 
        } 
        catch 
        { 
            MessageBox.Show(this, "添加文章失败!"); 
        } 
--------------------编程问答--------------------
引用 4 楼 zhoufoxcn 的回复:
Response.write("   <script>alert('添加文章成功');window.location='Article_Add.aspx';   </script>"); 
这句正解! 

MessageBox.Show(this, "添加文章成功!");  
Response.Redirect("Article_Add.aspx");  
这种方式有两个问题: 
一、使用的MessageBox类是WinForm的,不好,要使用web的方式,就是alert方式; 
二、在弹出提示框之后,页面马上就跳转了,所以看不见提示信息。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,