前:
后: protected void btnSubmit_Click(object sender, EventArgs e)
    {
 if (Session["userName"] == null)
            {
                Response.Write("<script language=javascript>alert('请登录!');</script>");
                //LabMsg.Text = "请先登录!";
            }
            else
            {}
     }当用户未登录时,弹出一个对话框“请登录!”,点击确定后,页面布局就改变了,如上图所示。请教高手这是什么原因?用什么方法可以解决这种问题,同样要弹出提示窗口。(如果在Label中输出,布局不会改变)

解决方案 »

  1.   

    http://cgxcn.blog.163.com/blog/static/132312422009426112839757/
      

  2.   

    Response.End()
      

  3.   

    Response.Write("<script language=javascript>alert('请登录!');</script>");
    这玩意导致的吧你可以在按钮上用JS去alert return false 更好些。
      

  4.   

    就是Response.Write("<script language=javascript>alert('请登录!');</script>");
    这句导致的。<asp:Button ID="btnSubmit" runat="server" Text="提交" 
                                            onclick="btnSubmit_Click"/>  在按钮上如何用JS去alert return false 呢?
      

  5.   

    Response.Write("<Script Language=JavaScript>alert('请登录!');history.go(-1);</Script>");
      

  6.   

    <asp:Button ID=...>里加
    OnClientClick="JScode;return true or false;"
    return true会执行OnClick后的后台程序,return false不会
      

  7.   


      this.ClientScript.RegisterClientScriptBlock(this.GetType(), "errorlogin", "<script>alert('请先登录!')</script>");
      

  8.   

    Response.Write("<Script Language=JavaScript>alert('请登录!');history.go(-1);</Script>");
    这是返回上一步。 我之前也遇到过你这样的问题。用这个方法可以解决。记得给分啊。。
      

  9.   


    谢谢,这个可以的。 protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            int id = Convert.ToInt32(datalist1.DataKeys[e.Item.ItemIndex].ToString());
            Response.Write("<script language=javascript>window.open('articleDetails.aspx?i=" + id + "')</script>");
        }这个也是那个问题,点击文章标题重新打开一个窗口后,原先那个页面布局也会改变,这个该怎么解决呢?
      

  10.   

     protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            int id = Convert.ToInt32(datalist1.DataKeys[e.Item.ItemIndex].ToString());
            Response.Write("<script language=javascript>window.open('articleDetails.aspx?i=" + id + "')</script>");
        }
    这个也是那个问题,点击文章标题重新打开一个窗口后,原先那个页面布局也会改变,这个该怎么解决呢?谢谢!
      

  11.   


    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "errorlogin", "<script language=javascript>window.open('articleDetails.aspx?i=" + id + "')</script>");类似吧?
    就是用
    this.ClientScript.RegisterClientScriptBlock代替Response.Write输出JS代码
      

  12.   

    在cs代码中,用response.write输出js代码时,会破坏asp.net输出html结构,导致界面错乱。
    一般情况下,不要用response.write,而是用专门的方法
    RegisterStartupScript    RegisterClientScriptBlock