• asp.net中窗口相关操作总结(javascript)


    这些代码全部写在和页面分离的代码页中(codebehind),如果要嵌入到*.aspx页面,可能 
    会出现问题. 
     
    1.打开新窗口 
      这个简单:Response.Write(@"
    <script 
        
    language='javascript'>window.open('url');</script>"); 
    2.关闭窗口 
      //关闭当前窗口,并提示用户时候关闭,yes关闭,no退出 
      Response.Write(@"
    <script language='javascript'>window.close();</script>"); 
      //延迟关闭窗口(下面代码表示2秒后关闭,无需确认) 
      Response.Write(@"
    <script 
        
    language='javascript'>setTimeout('self.close()',2000);</script>"); 
    3.延迟时间 
      这个和上面的没有多少区别.我用到的情况是,在用户操作完毕给出提示,"n秒后,页面 
        转向"之类的只需去掉2重的Self.close()即可 
      Response.Write(@"
    <script 
        
    language='javascript'>setTimeout('',2000);</script>"); 
    4.弹出提示或警告窗口 
      Response.Write(@"
    <script language='javascript'>alert('添加成功,2秒钟后页面 
        将自动跳');
    </script>"); 
    5.刷新其他页面 
      这个用到的情况还是不少.比如在B页面对数据更新和修改,另一页面A要保持最新数据 
      给客户,这是就要在对B操作完毕的情况下对A进行刷新: 
      Response.Write(@"
    <script language='javascript'>window.opener.location. 
        href
    ='./default.aspx'
    </script>") ; 
    6.页面跳转 
      有时候在学要给出提示的情况下进行页面跳转,不能使用Response.Redirect("url"); 
      比如,当客户操作完毕,单击按钮提交,弹出提示框(使用上面3和4),如果使用了 
        Response.Redirect("url"); 
      那么页面将不给出提示,页就是3和4没有起作用就直接转向了. 
      如果你是下面的操作过程: 
      1).Response.Write(@"
    <script language='javascript'>alert('添加成功,2秒钟后页 
        面将自动跳');
    </script>"); 
      2).Response.Write(@"
    <script 
        
    language='javascript'>setTimeout('',2000);</script>"); 
      3).页面转向: 
        Response.Write("
    <meta http-equiv='refresh' 
        
    content='0;URL=./default.aspx'>"); 
        //这个我不知道用javascript怎么实现,熟悉的轻补充一下 
    7.窗口传制问题 
      这个问题比较烦,打开模态窗口(ShowModelDialog)我还没有实现,请各位补充. 
      具体情况是这样的,比如说A打开一个新窗口B,当用户对B操作完毕后,我们获得必要的 
      数据,自动将其赋给A中的TextBox等控件,这个过程是在客户端完成的.就像发送邮件时, 
      需要从地址本中选取,然后将选中的发送地址传回来. 
      1).在A中加入如下代码,打开一个新窗口B. 
         Response.Write(window.">@"window.
            open('B.aspx','','toolbar=no,menubar=no,status=yes,location=no, 
            resizable=no,scrollbars=no,width=500,height=350');
    </script>"); 
      2).对B操作完毕,获得必要数据tmpStr,然后将其赋值给A中的TextBox1 
         Response.Write(@"
    <script 
            
    language='javascript'>opener.document.all.TextBox1.value 
             
    ='" +tmpStr+"';
    </script>"); 
      注意:这个过程是在客户单用javascript完成的,因此我们不能按照服务端的编程习惯 
    以及不能使用web服务控件的服务端属性进行操作.TextBox1是一个web服务控件, 
    其id为TextBox1,A页面被服务器解析为html,通过浏览器浏览,TextBox1就变成了 
    纯html控件,我们这里用javascript操作的也就是html控件,因此赋值使用的是 
    TextBox1的value属性而不是Text属性.另外,web服务器控件的id被解析成html后, 
    id有时会变,我们只要注意使用服务器解析后的id就成了,在浏览器中右键->查看源文件 
    即可得到 
     
      对第七种操作情况最好使用打开模态窗口windows.ShowModelDialog(),但是比较麻烦, 
    哦还没有实现. 
     
     
    接上: 
     
    调整本窗口大小和位置 
    Response.Write("
    <script>window.resizeTo(500,400);</script>"); 
    Response.Write("
    <script>window.moveTo(300,200);</script>"); 
     
     
    接上: 
     
    补:使用模态窗口传值 
     
    主要代码如下: 
    a.aspx and a.aspx.cs 
     
    <%@ Page language="c#" Codebehind="a.aspx.cs" AutoEventWireup="false" 
    Inherits
    ="Genesis02.a" 
    %> 
    <HTML> 
        
    <HEAD> 
            
    <title>a</title> 
            
    <SCRIPT language="javascript"> 
                
    var str; 
     
                
    function pop(url) 
     
                

                    
    var myDialog = document.a.TBoxType.value; 
     
                    
    if (window.showModalDialog) 
                    

                        str
    =window.showModalDialog(url,myDialog,"dialogHeight: 
    300px; dialogWidth: 500px;center: yes; help: no;resizable: yes; status: 
    no;
    "); 
                        
    if (typeof(str) != "undefined"
                        

                            document.a.TBoxType.value 
    = str; 
                        }
     
                    }
     
                }
     
            
    </SCRIPT> 
        
    </HEAD> 
        
    <body MS_POSITIONING="GridLayout"> 
            
    <form id="a" method="post" runat="server"> 
                
    <asp:textbox id="TBoxType" 
    runat
    ="server"></asp:textbox><asp:button id="BtnGetType" Runat="server" 
    Text
    ="Open"></asp:button> 
            
    </form> 
        
    </body> 
    </HTML> 
    __________________________________________________________________ 
     
    using System; 
    using System.Collections; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Web; 
    using System.Web.SessionState; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.HtmlControls; 
     
    namespace Genesis02 

        /// 
    <summary> 
        /// a 的摘要说明。 
        /// 
    </summary> 
        public class a : System.Web.UI.Page 
        { 
            protected System.Web.UI.WebControls.TextBox TBoxType; 
            protected System.Web.UI.WebControls.Button BtnGetType; 
     
            private void Page_Load(object sender, System.EventArgs e) 
            { 
                if (!IsPostBack) 
     
                { 
                    BtnGetType.Attributes["onclick"] = "pop('c.aspx');return 
    false;"; 
                } 
            } 
     
            #region Web Form Designer generated code 
            override protected void OnInit(EventArgs e) 
            { 
                // 
                // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 
                // 
                InitializeComponent(); 
                base.OnInit(e); 
            } 
     
            /// 
    <summary> 
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
            /// 此方法的内容。 
            /// 
    </summary> 
            private void InitializeComponent() 
            { 
                this.Load += new System.EventHandler(this.Page_Load); 
     
            } 
            #endregion 
        } 

     
     
    ################################################################# 
    b.aspx and b.aspx.cs 
     
    <%@ Page language="c#" Codebehind="b.aspx.cs" AutoEventWireup="false" 
    Inherits
    ="Genesis02.b" 
    %> 
    <HTML> 
        
    <HEAD> 
            
    <title>b</title> 
            
    <SCRIPT language="javascript"> 
            
    function closeme() 
            

     
                
    //top.returnvalue = 
    window.document.all.LBoxRFAContent.options[window.document.all.LBoxRFAContent 
    .selectedindex].value; 
                top.returnvalue 
    = document.getElementById("TBoxvalue").value; 
                top.close(); 
            }
     
     
            
    function Body_Load() 
            

                
    if(window.dialogArguments != null
                    window.document.getElementById(
    "TBoxvalue").value = 
    window.dialogArguments; 
                }
     
            }
     
            
    </SCRIPT> 
        
    </HEAD> 
        
    <body MS_POSITIONING="GridLayout" onload="Body_Load()"> 
            
    <form id="b" method="post" runat="server"> 
                
    <asp:Button id="BtnClose" style="Z-INDEX: 101; LEFT: 152px; 
    POSITION: absolute; TOP: 131px"
     runat="server" Text="Close me"></asp:Button> 
     
                
    <asp:TextBox id="TBoxvalue" style="Z-INDEX: 102; LEFT: 149px; 
    POSITION: absolute; TOP: 69px"
     runat="server"></asp:TextBox> 
            
    </form> 
        
    </body> 
    </HTML> 
     
    __________________________________________________________________ 
    using System; 
    using System.Collections; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Web; 
    using System.Web.SessionState; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.HtmlControls; 
     
    namespace Genesis02 

        /// 
    <summary> 
        /// b 的摘要说明。 
        /// 
    </summary> 
        public class b : System.Web.UI.Page 
        { 
            protected System.Web.UI.WebControls.TextBox TBoxvalue; 
            protected System.Web.UI.WebControls.Button BtnClose; 
     
     
            private void Page_Load(object sender, System.EventArgs e) 
            { 
                if (!IsPostBack) 
                { 
                    BtnClose.Attributes["onclick"] = "closeme();return false;"; 
                } 
            } 
     
            #region Web Form Designer generated code 
            override protected void OnInit(EventArgs e) 
            { 
                // 
                // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 
                // 
                InitializeComponent(); 
                base.OnInit(e); 
            } 
     
            /// 
    <summary> 
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
            /// 此方法的内容。 
            /// 
    </summary> 
            private void InitializeComponent() 
            { 
                this.Load += new System.EventHandler(this.Page_Load); 
     
            } 
            #endregion 
        } 

     
    ####################################################################### 
     
    c.aspx and c.asp.cs 
     
    <%@ Page language="c#" Codebehind="c.aspx.cs" AutoEventWireup="false" 
    Inherits
    ="Genesis02.c" 
    %> 
    <HTML> 
     
        
    <HEAD> 
            
    <TITLE>c</TITLE> 
        
    </HEAD> 
        
    <frameset rows="0,*"> 
            
    <frame src="about:blank"> 
            
    <frame src="b.aspx"> 
        
    </frameset> 
    </HTML> 
     
     
    ____________________________________________________ 
     
    using System; 
    using System.Collections; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Web; 
    using System.Web.SessionState; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.HtmlControls; 
     
    namespace Genesis02 

     
        /// 
    <summary> 
        /// c 的摘要说明。 
        /// 
    </summary> 
        public class c : System.Web.UI.Page 
        { 
            private void Page_Load(object sender, System.EventArgs e) 
            { 
                // 在此处放置用户代码以初始化页面 
            } 
     
            #region Web Form Designer generated code 
            override protected void OnInit(EventArgs e) 
            { 
                // 
                // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 
                // 
                InitializeComponent(); 
                base.OnInit(e); 
            } 
     
            /// 
    <summary> 
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
            /// 此方法的内容。 
            /// 
    </summary> 
            private void InitializeComponent() 
            { 
                this.Load += new System.EventHandler(this.Page_Load); 
            } 
            #endregion 
        } 

     
    ############################################################################# 
     
    c.aspx and c.asp.cs 
     
    <%@ Page language="c#" Codebehind="c.aspx.cs" AutoEventWireup="false" 
    Inherits
    ="Genesis02.c" 
    %> 
    <HTML> 
        
    <HEAD> 
            
    <TITLE>c</TITLE> 
        
    </HEAD> 
        
    <frameset rows="0,*"> 
            
    <frame src="about:blank"> 
            
    <frame src="b.aspx"> 
        
    </frameset> 
    </HTML> 
     
     
    ____________________________________________________ 
     
    using System; 
    using System.Collections; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Web; 
    using System.Web.SessionState; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.HtmlControls; 
     
    namespace Genesis02 

        /// 
    <summary> 
        /// c 的摘要说明。 
        /// 
    </summary> 
        public class c : System.Web.UI.Page 
        { 
            private void Page_Load(object sender, System.EventArgs e) 
            { 
                // 在此处放置用户代码以初始化页面 
            } 
     
            #region Web Form Designer generated code 
            override protected void OnInit(EventArgs e) 
            { 
                // 
                // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 
                // 
                InitializeComponent(); 
                base.OnInit(e); 
            } 
     
            /// 
    <summary> 
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
            /// 此方法的内容。 
            /// 
    </summary> 
            private void InitializeComponent() 
            { 
                this.Load += new System.EventHandler(this.Page_Load); 
            } 
            #endregion 
        } 

     
     
     
  • 相关阅读:
    leetcode — spiral-matrix-ii
    leetcode — spiral-matrix
    leetcode — maximum-subarray
    leetcode — n-queens
    leetcode — powx-n
    leetcode — anagrams
    bzoj 2194: 快速傅立叶之二 FFT
    bzoj 4503 两个串 快速傅里叶变换FFT
    Codeforces 762D Maximum path 动态规划
    Codeforces 762C Two strings 字符串
  • 原文地址:https://www.cnblogs.com/ghd258/p/330853.html
Copyright © 2020-2023  润新知