本文主要對ASP.NET 2.0中客戶端腳本的使用方法進行一個簡單的總結(jié)性概述。
1.使用OnClientClick屬性打開客戶端腳本,使用方法如下:
js腳本:
<script language="javascript" type="text/javascript"> function opensite() ...{ window.open(" return true; } </script>
調(diào)用方法:
<asp:Button ID="Button1" OnClientClick="opensite()" runat="server" Text="打開站點" /> 2.動態(tài)注冊js腳本,下面介紹一下以下四個方法的含義與使用:
以下幾種方法都是派生自ClientScriptManager類,研究一下里面有幾十個方法,而且有些重載了.我拿最常用的方法講一下.
1) RegisterClientScriptBlock方法:將js區(qū)塊添加到頁面頂端,你可以以字符串形式創(chuàng)建這些js代碼,然后將它傳遞給添加網(wǎng)頁的方法。其對應(yīng)的包含方法IsClientScriptBlockRegistered()
使用方法如下:
//動態(tài)創(chuàng)建js文件 string info = ""; info += "function showName(UserName)"; info += "{alert(’你的名字是:’+UserName);}"; // 判斷myName是否已經(jīng)被注冊 if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName")) ...{ //動態(tài)注冊js Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info, true); }
注意:可以查看一下生成頁面的代碼究竟怎樣的?
2)RegisterClientScriptInclude方法:通過外部添加引用js腳本。其對應(yīng)的包含方法IsClientScriptIncludeRegistered()
假如有一段這樣的info.js腳本,如下所示:
function showCity(City) ...{ alert("我愛我的:"+City); }
引用它的例子,如下:
//動態(tài)注冊info.js的javascript文件 //判斷是否已被注冊 if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "myMessage")) ...{ //若沒有被注冊,剛將Info.js動態(tài)注冊 Page.ClientScript.RegisterClientScriptInclude("myMessage", "js/info.js"); }
注意一下每一個方法的參數(shù)就可以了。
3)RegisterStartupScript方法:將js區(qū)塊添加當(dāng)網(wǎng)頁完成加載,但是在引發(fā)網(wǎng)頁的onload事件之前,就會執(zhí)行。其對應(yīng)的包含方法IsStartupScriptRegistered。
使用它的例子如下:
string info = " "; if (!Page.ClientScript.IsStartupScriptRegistered("welcome")) ...{ Page.ClientScript.RegisterStartupScript(this.GetType(), "welcome", info); }
4)RegisterOnSubmitStatement方法:添加執(zhí)行以響應(yīng)網(wǎng)頁onsubmit事件的js。其對應(yīng)的包含方法IsOnSubmitStatementRegistered。
使用它的例子如下:
string info = "return confirm(’你確認刪除?’);"; if (!Page.ClientScript.IsOnSubmitStatementRegistered(this.GetType(), "myPage")) ...{ Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "myPage", info); }
注意一下這里不用另外加 <script>標(biāo)簽,因為系統(tǒng)已經(jīng)幫你生成好了。
|