由於項目要用到彈出窗口或者叫做模擬窗口這段時間就研究了下解決方案很多比如windowopen();windowshowDialog();用層模擬框架+DIV+Javascript
用windowopen()這種方法的缺點是會被浏覽器或者相關軟件給屏蔽掉用層模擬的話如果想實現較復雜點的窗口就比較困難第三種方法是綜合了所有的網頁制作知識可以提供個很好的解決方案但是第三種實現起來對於Javascript知識不夠的人來說很難完成前段時間在網上逛的時候發現了個好的解決方案GreyBox經過反復研究發現GreyBox幾乎可以完成所有的彈出窗口(但是好像對框架中的框架不太支持)為了方便使用我把GreyBox封裝為一個控件現在把用法貼出來
涉及到的文件:GreyBoxdll(動態庫) greyboxloaderaspxgreyboxloaderaspxcs (加載網頁的框架)gb_stylescss(樣式表)
添加文件:
① 添加引用GreyBoxdll 到Bin文件夾
② 添加greyboxloaderaspxgreyboxloaderaspxcs到項目的根目錄
③ 添加gb_stylescss文件到imges/css/ 文件夾下
調用方法:
①引用控件
在頁面頂部加入代碼
<%@ Register Assembly=
GreyBox
Namespace=
GreyBox
TagPrefix=
cc
%>
在<form></form>之間添加代碼
<cc
:GreyBox id=
Geybox
runat=
server
></cc
:GreyBox>
②加載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
Button
Attributes
Add(
onclick
return GB_showCenter(
修改密碼
echangepw
aspx
)
);
GB_showCenter(
title
url
height
width)
方法的參數說明:
title:彈出窗口的標題
url:網址或者網頁文件名
height:彈出窗口的高度
width:彈出窗口的寬度
這樣點擊Button就可以彈出一個窗口了
方法:
關閉窗口:
Response
Write(
< script language=javascript>parent
parent
GB_hide();</script>
);
提交並關閉窗口:
有框架的情況(IFRAME)
Response
Write(
< script language=javascript>parent
parent
document
forms(
)
submit();</script>
);
無框架的情況
Response
Write(
< script language=javascript>top
window
document
forms(
)
submit();</script>
);
說明Greybox的所有資源歸其原作者所有感興趣的可以去其網站看上面有詳盡的介紹當然也可以和我討論我很願意和大家分享
From:http://tw.wingwit.com/Article/program/net/201311/15519.html