打开一个 showModelessDialog 窗口  名为:list.aspx  有两个按钮: Button1  和 Button2list.aspx 中关闭按钮事件如下:
HTML按钮
<INPUT type="button" value="ButtonClick" onclick="self.close();" name="Button1" >服务器控件按钮:
protected void Button2_Click(object sender, EventArgs e)
{      
  Response.Write("<script  language=javascript >self.close();</script>");
}为什么按了Button1  后会关闭list.aspx 
而按了Button2  后不会关闭list.aspx 要想按了Button2  后会关闭list.aspx 应如何做?

解决方案 »

  1.   

    1.<asp:Button ID="Button2" runat="server" OnClientClick="self.close()" />
    2.Button2.Attributes["onclick"] = "self.close()";
      

  2.   

    Response.Write(" <script  language=javascript >self.close(); </script>");
    这话只是把脚本写到html页面上卖弄。具体的代码并没有执行。
      

  3.   

    楼上误解我的意思了!服务器控件按钮: 
    protected void Button2_Click(object sender, EventArgs e) 
    {      
      ……这里有好多原代码,当执行完后才执行下面的关闭事件。
      Response.Write(" <script  language=javascript >self.close(); </script>"); 
    } 要想在Button2_Click中执行完后能关闭窗口应如何做?
      

  4.   

    在showModelessDialog 窗口中,处理服务器事件,是需要重新请求页面list.aspx.  而且在showModelessDialog 窗口中,是重新打开一个窗口请求. 所以通过服务器事件来关闭该showModelessDialog 窗口是无法实现的.
      

  5.   

    protected void Button2_Click(object sender, EventArgs e)
    {     
     
    this.Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), Guid.NewGuid().ToString(), "<script  language=javascript >window.close(); </script>");
    }
      

  6.   


    Response.Write(" <script  language=\"javascript\">alert(\"测试\")</script>");
    Response.Write(" <script  language=\"javascript\">window.close()</script>"); 
      

  7.   


    如果想在 showModelessDialog 窗口  中执行一些操作数据库的代码,应如何做?
      

  8.   

     page.ClientScript.RegisterStartupScript(page.ClientScript.GetType(), "", "<script>window.opener=null; window.close();</script>");
      

  9.   


    因为showModelessDialog的窗口本身页面无法进行回发, 所以你说的操作数据库,如果是通过页面的事件操作,那么无法进行,如果是在Page_Load中,则可以进行.建议进行交互性的页面,不使用Model窗口请求页面. 可以使用div+iframe,通过javascript控制其显示与否.