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

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 78 ::
收藏到网摘: 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和提出了一些需求,我准备重写。