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

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" >
        <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
    }

 

时间: 2024-09-03 20:09:34

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

Excel表格中序号相关操作技巧

  Excel表格中序号相关操作技巧          序号对于大家来说都不会陌生,今天本文就一起聊聊Excel表格中序号相关操作技巧. 上面这个图中的A列,就是咱们经常看到的序号形式之一. 有朋友会说,这很简单啊,就是一些数字的罗列而已. 但在实际工作当中,远不止数字罗列这么简单.咱们经常会遇到不同样式的序号排列要求,比如说:按部门填写序号.筛选后填写序号.不连续的数据填写序号等等. 先说说生成常规序号. 一般咱们填写序号,只要在第一个单元格内输入数字1,然后按住单元格右下角的填充柄向下拖动,

ASP.NET中执行耗时操作的解决方案

在ASP.NET中可以利用多线程方式来达到同样的目的. 多线程  代码如下 复制代码 <%@ Page language="c#" Codebehind="WebForm54.aspx.cs" AutoEventWireup="false" Inherits="csdn.WebForm54" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transit

使ASP.NET中的数据库操作变得简单

asp.net|数据|数据库 作者:Willmove 主页:http://www.amuhouse.com E-mail: willmove@gmail.com 声明:系作者原创作品,转载请注明出处. ASP.NET中一般都是使用SQL Server作为后台数据库.一般的ASP.NET数据库操作示例程序都是使用单独的数据访问,就是说每个页面都写连接到数据库,存取数据,关闭数据库的代码.这种方式带来了一些弊端,一个就是如果你的数据库改变了,你必须一个页面一个页面的去更改数据库连接代码. 第二个弊端

ASP.NET中数据库的操作初步----增加、删除、修改

asp.net|数据|数据库 注意:本文暂时不讲解数据库的数据调出和显示,因为他涉及的东西比较多,所以我们将另外详细讲解.本文主要要讲的是数据库的增加.删除.修改. 一.定义OleDbCommand类型变量:MyCommand 要对数据库进行增加.删除.修改的操作我们还需要根据MyConnectio的类型定义一个OleDbCommand或者SqlCommand对象(请注意如果MyConnection是OleDbConnection类型,那么只能用OleDbCommand:如果MyConnecti

asp.net中Silverlight文件操作

提到Silverlight中的文件操作,第一个肯定是独立存储Isolated Store,这个东东相当于于一个本地的小型存储空间,通过它可以把一些不重要的数据(用户的一些配置信息或者文件) IsolatedStorageFile: 保存在客户端,由于这个空间是可以在本地查看得到,同时用户也可以随意的删除这些文件件以及文件,所以不要存放重要的信息. IsolatedStorageFile.GetUserStoreForApplication();得到基于当前用户和当前应用程序的IsolatedSt

asp.net中cookie的操作(删除,修改,查找,赋值)

下面分享一下对cookies的简单操作 1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies)    代码如下 复制代码 #region##添加cookeis     ///<summary>     /// 添加cookeis     ///</summary>     public void AddCookies()     {         HttpCookie cookies = new HttpCookie("Por

在ASP.NET中利用VWD操作数据库简介

asp.net|数据|数据库 VWD2005中包含了SQL Server 2005 Express Edition,它是SQL Server 2005的一个免费版本,它的目标用户是那些希望用简单的数据库解决方案来建立应用程序的非专业的或狂热的开发者.由于SQL Server Express支持完整的SQL Server编程模型,例如SQLCLR.T-SQL.存储过程.视图.触发器和XML数据类型,你可以使用SQL Server Express来了解这些技术,并且确保自己的应用程序可以运行在更高层

ASP.NET中利用VWD操作数据库

asp.net|数据|数据库 VWD2005中包含了SQL Server 2005 Express Edition,它是SQL Server 2005的一个免费版本,它的目标用户是那些希望用简单的数据库解决方案来建立应用程序的非专业的或狂热的开发者.由于SQL Server Express支持完整的SQL Server编程模型,例如SQLCLR.T-SQL.存储过程.视图.触发器和XML数据类型,你可以使用SQL Server Express来了解这些技术,并且确保自己的应用程序可以运行在更高层

在ASP.net中的XML操作笔记

前几天一老鸟跑来说:"小Q,看来这几天你没有什么事情,来给你安排一下工作!"我曰:"哦",---.从此就开始饿补.net中操作XML的东东.好了,废话不说,做先! 下面是的代码是XML的模板TestTemplate.vxml 1 2 3 4 5 6 7 8 此值小于9 9 10 11 此值大于2 12 13 14 15 在这个模板中保存的是VoiceXML文件,这是用来制定语音流程的东东,通过它您就能够实现类似10086或118114的语音台的功能.(VoiceXM