aspx窗體中彈出另外web窗體應用及相關問題

在aspx頁面的一個button的click事件中實現彈出一個固定大小的(400*400)的窗體:

 

Response.Write(" <script language=javascript>window.open ('urladdress', '','height=200, width=200, top=1, left=1, toolbar=no, menubar=no, scrollbars=no, resizable=yes,location=no, status=no') ; </script>");

 

下面再說一說彈出窗口的設置。只要再往上面的代碼中加一點東西就可以了。
我們來定製這個彈出的窗口的外觀,尺寸大小,彈出的位置以適應該頁面的具體情況。


參數解釋:
window.open 彈出新窗口的命令;
'page.html' 彈出窗口的文件名;
'newwindow' 彈出窗口的名字(不是文件名),非必須,可用空''代替;
height=100 窗口高度;
width=400 窗口寬度;
top=0 窗口距離屏幕上方的象素值;
left=0 窗口距離屏幕左側的象素值;
toolbar=no 是否顯示工具欄,yes爲顯示;
menubar,scrollbars 表示菜單欄和滾動欄。
resizable=no 是否允許改變窗口大小,yes爲允許;
location=no 是否顯示地址欄,yes爲允許;
status=no 是否顯示狀態欄內的信息(通常是文件已經打開),yes爲允許;

 


運行以後會發現,新窗口是打開了,但是原來頁面的字體變大了,原因是直接Response.write輸出腳本代碼到頂部,打亂了文檔模型,所以造成了這樣的結果。

解決方法:
方法一:把Response.Write()語句替換爲這個

Page.RegisterStartupScript("ServiceManHistoryButtonClick", "<script>window.open('EquipmentHistory.aspx?eid=" + ServiceManDropDownList.SelectedValue + "');</script>");

這個方法用於在頁響應中發出客戶端腳本塊,前一個參數是該Script在頁面中的唯一名稱(隨便起,不重複就行),後一個是腳本內容。

這個方法應該是微軟官方推薦的方法。

方法二:在原程序的Response.Write()語句後再加一句

Response.Write("<script>document.location=document.location;</script>");

想出這個辦法的人真高!

 

我實際中常常使用方法二,比較快捷,但是方法一推薦的解決方案,大家有興趣可以試試看

1



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章