asp.net中窗口相关操作(如何使用javascript)

GumPGZ 2002-07-29 03:23:44
我对javascript并不熟,但是最近的项目用到很多,现把他总结如下,也不算什么技巧,
就当留个备案吧

这些代码全部写在和页面分离的代码页中,如果要嵌入到*.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 lannguage='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(@"<script>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(),但是比较麻烦,哦还没有实现.

附:ShowModelDialog问题在这里有说明,请各位解决一下:
http://www.csdn.net/Expert/TopicView1.asp?id=903438

希望各位补充!!
谢谢

...全文
65 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LovenDreams 2002-07-30
  • 打赏
  • 举报
回复
好,请多多贴
GumPGZ 2002-07-30
  • 打赏
  • 举报
回复
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
}
}


以上是使用模态窗口的所有主要代码

GumPGZ 2002-07-30
  • 打赏
  • 举报
回复
补:使用模态窗口

感谢 icefireren() 同学

主要代码如下:
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
}
}



GumPGZ 2002-07-29
  • 打赏
  • 举报
回复
好啊

斑竹给提前吧
GumPGZ 2002-07-29
  • 打赏
  • 举报
回复
补,补,补

这种东西,留个档案,省得到时候用到了,找不到,烦
hgknight 2002-07-29
  • 打赏
  • 举报
回复
调整本窗口大小和位置
Response.Write("<script>window.resizeTo(500,400);</script>");
Response.Write("<script>window.moveTo(300,200);</script>");
mbm 2002-07-29
  • 打赏
  • 举报
回复
不错

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧