当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET中让网页弹出窗口不再困难

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

ASP.NET中让网页弹出窗口不再困难


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 96 ::
收藏到网摘: n/a

由于项目要用到弹出窗口,或者叫做模拟窗口,这段时间就研究了下,解决方案很多,比如,window.open();window.showDialog();用层模拟,框架+DIV+Javascript....

用window.open();这种方法的缺点是,会被浏览器或者相关软件给屏蔽掉。用层模拟的话,如果想实现较复杂点的窗口,就比较困难,第三种方法是综合了所有的网页制作知识,可以提供个很好的解决方案。但是,第三种实现起来,对于Javascript知识不够的人来说,很难完成。前段时间在网上逛的时候,发现了个好的解决方案:GreyBox.经过反复研究,发现,GreyBox几乎可以完成所有的弹出窗口(但是,好像对框架中的框架不太支持)。为了方便使用,我把GreyBox封装为一个控件。现在把用法贴出来:

1.涉及到的文件:GreyBox.dll(动态库) greyboxloader.aspx,greyboxloader.aspx.cs (加载网页的框架),gb_styles.css(样式表)

2.添加文件:

① 添加引用GreyBox.dll 到Bin文件夹

② 添加greyboxloader.aspx,greyboxloader.aspx.cs到项目的根目录.

③ 添加gb_styles.css文件到imges/css/ 文件夹下

3.调用方法:

①引用控件:

在页面顶部加入代码:

之间添加代码:

②加载CSS文件:

HtmlLink myHtmlLink = new HtmlLink();

myHtmlLink.Href = "images/css/gb_styles.css";

myHtmlLink.Attributes.Add("rel", "stylesheet");

myHtmlLink.Attributes.Add("type", "text/css");

Page.Header.Controls.Add(myHtmlLink);

③注册弹出新窗口事件(以Button为例):

this.Button1.Attributes.Add("onclick", "return GB_showCenter('修改密码', 'echangepw.aspx',200,390)");

GB_showCenter('title','url',height,width)方法的参数说明:

title:弹出窗口的标题

url:网址或者网页文件名

height:弹出窗口的高度

width:弹出窗口的宽度

这样,点击Button1就可以弹出一个窗口了.

4.方法:

关闭窗口:

Response.Write("< script language=javascript>parent.parent.GB_hide();");

提交并关闭窗口:

有框架的情况(IFRAME)

Response.Write("< script language=javascript>parent.parent.document.forms(0).submit();");

无框架的情况

Response.Write("< script language=javascript>top.window.document.forms(0).submit();");

说明:Greybox的所有资源归其原作者所有,感兴趣的可以去其网站看。上面有详尽的介绍,当然,也可以和我讨论,我很愿意和大家分享。

ps:上个月底发布了代码生成器,本来是准备尽快给朋友们上传源码的,但是,由于最近在赶一个项目,再加上那个代码生成器给同事用后,发现了一些BUG和提出了一些需求,我准备重写。