asp.net中窗口相關操作總結(javascript)

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>

__________________________________________________________________

 

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

 

namespace Genesis02

{

    /// <summary>

    /// a 的摘要說明。

    /// </summary>

    public class a : System.Web.UI.Page

    {

        protected System.Web.UI.WebControls.TextBox TBoxType;

        protected System.Web.UI.WebControls.Button BtnGetType;

 

        private void Page_Load(object sender, System.EventArgs e)

        {

            if (!IsPostBack)

 

            {

                BtnGetType.Attributes["onclick"] = "pop('c.aspx');return

false;";

            }

        }

 

        #region Web Form Designer generated code

        override protected void OnInit(EventArgs e)

        {

            //

            // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

            //

            InitializeComponent();

            base.OnInit(e);

        }

 

        /// <summary>

        /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

        /// 此方法的內容。

        /// </summary>

        private void InitializeComponent()

        {

            this.Load += new System.EventHandler(this.Page_Load);

 

        }

        #endregion

    }

}

 

 

#################################################################

b.aspx and b.aspx.cs

 

<%@ Page language="c#" Codebehind="b.aspx.cs" AutoEventWireup="false"

Inherits="Genesis02.b" %>

<HTML>

    <HEAD>

        <title>b</title>

        <SCRIPT language="javascript">

        function closeme()

        {

 

            //top.returnvalue =

window.document.all.LBoxRFAContent.options[window.document.all.LBoxRFAContent

.selectedindex].value;

            top.returnvalue = document.getElementById("TBoxvalue").value;

            top.close();

        }

 

        function Body_Load()

        {

            if(window.dialogArguments != null) {

                window.document.getElementById("TBoxvalue").value =

window.dialogArguments;

            }

        }

        </SCRIPT>

    </HEAD>

    <body MS_POSITIONING="GridLayout" οnlοad="Body_Load()">

        <form id="b" method="post" runat="server">

            <asp:Button id="BtnClose" style="Z-INDEX: 101; LEFT: 152px;

POSITION: absolute; TOP: 131px" runat="server" Text="Close me"></asp:Button>

 

            <asp:TextBox id="TBoxvalue" style="Z-INDEX: 102; LEFT: 149px;

POSITION: absolute; TOP: 69px" runat="server"></asp:TextBox>

        </form>

    </body>

</HTML>

 

__________________________________________________________________

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

 

namespace Genesis02

{

    /// <summary>

    /// b 的摘要說明。

    /// </summary>

    public class b : System.Web.UI.Page

    {

        protected System.Web.UI.WebControls.TextBox TBoxvalue;

        protected System.Web.UI.WebControls.Button BtnClose;

 

 

        private void Page_Load(object sender, System.EventArgs e)

        {

            if (!IsPostBack)

            {

                BtnClose.Attributes["onclick"] = "closeme();return false;";

            }

        }

 

        #region Web Form Designer generated code

        override protected void OnInit(EventArgs e)

        {

            //

            // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

            //

            InitializeComponent();

            base.OnInit(e);

        }

 

        /// <summary>

        /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

        /// 此方法的內容。

        /// </summary>

        private void InitializeComponent()

        {

            this.Load += new System.EventHandler(this.Page_Load);

 

        }

        #endregion

    }

}

 

#######################################################################

 

c.aspx and c.asp.cs

 

<%@ Page language="c#" Codebehind="c.aspx.cs" AutoEventWireup="false"

Inherits="Genesis02.c" %>

<HTML>

 

    <HEAD>

        <TITLE>c</TITLE>

    </HEAD>

    <frameset rows="0,*">

        <frame src="about:blank">

        <frame src="b.aspx">

    </frameset>

</HTML>

 

 

____________________________________________________

 

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

 

namespace Genesis02

{

 

    /// <summary>

    /// c 的摘要說明。

    /// </summary>

    public class c : System.Web.UI.Page

    {

        private void Page_Load(object sender, System.EventArgs e)

        {

            // 在此處放置用戶代碼以初始化頁面

        }

 

        #region Web Form Designer generated code

        override protected void OnInit(EventArgs e)

        {

            //

            // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

            //

            InitializeComponent();

            base.OnInit(e);

        }

 

        /// <summary>

        /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

        /// 此方法的內容。

        /// </summary>

        private void InitializeComponent()

        {

            this.Load += new System.EventHandler(this.Page_Load);

        }

        #endregion

    }

}

 

#############################################################################

 

c.aspx and c.asp.cs

 

<%@ Page language="c#" Codebehind="c.aspx.cs" AutoEventWireup="false"

Inherits="Genesis02.c" %>

<HTML>

    <HEAD>

        <TITLE>c</TITLE>

    </HEAD>

    <frameset rows="0,*">

        <frame src="about:blank">

        <frame src="b.aspx">

    </frameset>

</HTML>

 

 

____________________________________________________

 

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

 

namespace Genesis02

{

    /// <summary>

    /// c 的摘要說明。

    /// </summary>

    public class c : System.Web.UI.Page

    {

        private void Page_Load(object sender, System.EventArgs e)

        {

            // 在此處放置用戶代碼以初始化頁面

        }

 

        #region Web Form Designer generated code

        override protected void OnInit(EventArgs e)

        {

            //

            // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

            //

            InitializeComponent();

            base.OnInit(e);

        }

 

        /// <summary>

        /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

        /// 此方法的內容。

        /// </summary>

        private void InitializeComponent()

        {

            this.Load += new System.EventHandler(this.Page_Load);

        }

        #endregion

    }

}

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