ASP.NET-JavaScript輔助類

來源:互聯網
上載者:User

介紹一個ASP.NET向WebPage註冊JavaScript指令碼的輔助類.

在ASP.NET的開發中,Web層開發要實現與使用者的互動,常常用到如顯示一個警告對話方塊、刪除前彈出確認對話方塊、開啟一個新視窗、關閉當前視窗等等功能。

這些功能一般說來要用用戶端指令碼特別是JavaScript實現。 JavaScript中功能性代碼大體上可以分為以下幾種:

  1、確認;
  2、警告;
  3、關閉視窗;
  4、導航;
  5、開啟強制回應視窗、非強制回應視窗、自訂對話方塊、普通視窗;
  6、PopUp;
  7、驗證輸入(指ASP.NET驗證控制項不能實現的,如驗證兩個文字框必須輸入且只輸入一個);
  8、MaskEdit(掩碼輸入);
  。。。

ASP.NET管理、註冊、添加用戶端指令碼主要通過以下幾種方法:
  1、RegisterClientScriptBlock      
    可以向頁面中發送用戶端代碼塊(當然可以不僅僅是指令碼,也可以是其它的文本),這段代碼會被寫到Form裡的開始部分。
  2、IsClientScriptBlockRegistered   
    根據一個頁面級的Key來判斷某段由RegisterClientScriptBlock發送的用戶端代碼是否已被發送到了用戶端。
  3、RegisterStartupScript   
    可以向頁面中發送客戶。端代碼塊,這段代碼會被寫到Form裡的結束部分。這樣就可以如其名稱一樣,在頁面載入完成後寫入一段自動啟動並執行代碼。
  4、IsStartupScriptRegistered 
    根據一個頁面級的Key來判斷某段由RegisterStartupScript發送的用戶端代碼是否已被發送到了用戶端。
  5、RegisterArrayDeclaration(
    通過伺服器向用戶端註冊數組。
    例如 伺服器端C#代碼如下:RegisterArrayDeclaration("myArray", "'x','y','z'");
    其發送到用戶端 就成為:
    <script language="javascript">
    <!--
    var myArray =  new Array('x','y','z');
    // -->
    </script>
  6、RegisterOnSubmitStatement
  發送一段語句到用戶端,這段語句在表單提交前觸發並執行。

一般說來,要想實現在用戶端顯示一個警告對話方塊,我們會採用如下方法:
  Response.Write("<script language=\"javascript\">alert('Display an alert dialog.');</script>");
或者
  this.RegisterClientScriptBlock( 'alert1', "alert('Display an alert dialog.');" );

而採用此類後( 原始碼:JavaScriptHelper)),實現同樣功能只需要調用一句:JavaScript.alert("Display an alert dialog.");即可。
在這樣長度比較短的javascript語句中,此類的方便性可能還體現不出來,但試想我們要實現開啟新視窗的功能。
瞭解JavaScript的朋友都知道,開啟新視窗一般是通過window.open()方法實現的,它有眾多的參數。並不是每一個人都能準確得記得並準確無誤、快速地寫出這個方法的,此時此類的作用便體現出來了。
本類中我實現了一個名為OpenWindow的方法,原型是:
  重載1:
  public static bool OpenWindow(string url, string windowName, int height, int width,
            int left, int top, bool isWithToolbar, bool isWithMenubar, bool resizable, bool isWithLocation,
            bool isWithStatusbar, bool isWithScrollbars, bool isFront, bool isFullScreen, int autoCloseInSeconds)
  重載2:
  public static bool OpenWindow(string url, string windowName, int height, int width)

所以要想實現開啟新視窗的功能,只要調用這個方法即可,無需每次都事先組合好指令碼然後寫入或註冊到用戶端。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.