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

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" οnlοad="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

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值