在ASP.NET開發中輕鬆讓網頁彈出視窗

iDotNetSpace發表於2009-05-19

由於專案要用到彈出視窗,或者叫做模擬視窗,這段時間就研究了下,解決方案很多,比如,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();");

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-600456/,如需轉載,請註明出處,否則將追究法律責任。

相關文章