1.打開新窗口
這個簡單:Response.Write(@"<script
language='javascript'>window.open('url');</script>");
2.關閉窗口
//關閉當前窗口,並提示用戶時候關閉,yes關閉,no退出
Response.Write(@"<script language='javascript'>window.close();</script>");
//延遲關閉窗口(下面代碼表示2秒後關閉,無需確認)
Response.Write(@"<script
language='javascript'>setTimeout('self.close()',2000);</script>");
3.延遲時間
這個和上面的沒有多少區別.我用到的情況是,在用戶操作完畢給出提示,"n秒後,頁面
轉向"之類的只需去掉2重的Self.close()即可
Response.Write(@"<script
language='javascript'>setTimeout('',2000);</script>");
4.彈出提示或警告窗口
Response.Write(@"<script language='javascript'>alert('添加成功,2秒鐘後頁面
將自動跳');</script>");
5.刷新其他頁面
這個用到的情況還是不少.比如在B頁面對數據更新和修改,另一頁面A要保持最新數據
給客戶,這是就要在對B操作完畢的情況下對A進行刷新:
Response.Write(@"<script language='javascript'>window.opener.location.
href='./default.aspx'</script>") ;
6.頁面跳轉
有時候在學要給出提示的情況下進行頁面跳轉,不能使用Response.Redirect("url");
比如,當客戶操作完畢,單擊按鈕提交,彈出提示框(使用上面3和4),如果使用了
Response.Redirect("url");
那麼頁面將不給出提示,頁就是3和4沒有起作用就直接轉向了.
如果你是下面的操作過程:
1).Response.Write(@"<script language='javascript'>alert('添加成功,2秒鐘後頁
面將自動跳');</script>");
2).Response.Write(@"<script
language='javascript'>setTimeout('',2000);</script>");
3).頁面轉向:
Response.Write("<meta http-equiv='refresh'
content='0;URL=./default.aspx'>");
//這個我不知道用javascript怎麼實現,熟悉的輕補充一下
7.窗口傳制問題
這個問題比較煩,打開模態窗口(ShowModelDialog)我還沒有實現,請各位補充.
具體情況是這樣的,比如說A打開一個新窗口B,當用戶對B操作完畢後,我們獲得必要的
數據,自動將其賦給A中的TextBox等控件,這個過程是在客戶端完成的.就像發送郵件時,
需要從地址本中選取,然後將選中的發送地址傳回來.
1).在A中加入如下代碼,打開一個新窗口B.
Response.Write(window.">@"window.
open('B.aspx','','toolbar=no,menubar=no,status=yes,location=no,
resizable=no,scrollbars=no,width=500,height=350');</script>");
2).對B操作完畢,獲得必要數據tmpStr,然後將其賦值給A中的TextBox1
Response.Write(@"<script
language='javascript'>opener.document.all.TextBox1.value
='" +tmpStr+"';</script>");
注意:這個過程是在客戶單用javascript完成的,因此我們不能按照服務端的編程習慣
以及不能使用web服務控件的服務端屬性進行操作.TextBox1是一個web服務控件,
其id為TextBox1,A頁面被服務器解析為html,通過浏覽器浏覽,TextBox1就變成了
純html控件,我們這裡用javascript操作的也就是html控件,因此賦值使用的是
TextBox1的value屬性而不是Text屬性.另外,web服務器控件的id被解析成html後,
id有時會變,我們只要注意使用服務器解析後的id就成了,在浏覽器中右鍵->查看源文件
即可得到
對第七種操作情況最好使用打開模態窗口windows.ShowModelDialog(),但是比較麻煩,
我還沒有實現.
接上:
調整本窗口大小和位置
Response.Write("<script>window.resizeTo(500,400);</script>");
Response.Write("<script>window.moveTo(300,200);</script>");
接上:
補:使用模態窗口傳值
主要代碼如下:
a.aspx and a.aspx.cs
<%@ Page language="c#" Codebehind="a.aspx.cs" AutoEventWireup="false"
Inherits="Genesis02.a" %>
<HTML>
<HEAD>
<title>a</title>
<SCRIPT language="javascript">
var str;
function pop(url)
{
var myDialog = document.a.TBoxType.value;
if (window.showModalDialog)
{
str=window.showModalDialog(url,myDialog,"dialogHeight:
300px; dialogWidth: 500px;center: yes; help: no;resizable: yes; status:
no;");
if (typeof(str) != "undefined")
{
document.a.TBoxType.value = str;
}
}
}
</SCRIPT>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="a" method="post" runat="server">
<asp:textbox id="TBoxType"
runat="server"></asp:textbox><asp:button id="BtnGetType" Runat="server"
Text="Open"></asp:button>
</form>
</body>
</HTML>
__________________________________________________________________