亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

小試 ScriptManager

系統(tǒng) 1915 0
1 概述
ScriptManager 控件管理用于 Microsoft ASP.NET AJAX 頁面的客戶端腳本。默認(rèn)情況下,ScriptManager 控件將 Microsoft AJAX 庫的腳本與頁面注冊到一起,這使腳本可以使用類型系統(tǒng)擴(kuò)展并支持局部頁面輸出和 Web 服務(wù)調(diào)用。
在頁面中,必須使用 ScriptManager 控件來使下列 Microsoft ASP.NET AJAX 的特性可用:
  • Microsoft AJAX 庫的客戶端腳本功能,以及任何要發(fā)送到瀏覽器的定制腳本。
  • 部分頁面輸出,這使頁面中的某個區(qū)域可以不依賴于回送就可以刷新。ASP.NET AJAX? 的 UpdatePanel 、UpdateProgress 和 Timer 控件需要 ScriptManager 控件來支持局部輸出。
  • Web 服務(wù)的 Javascript 代理,這使客戶端腳本可以訪問由強(qiáng)類型的 Web 服務(wù)暴露出來的方法。
  • Javascript 類訪問 ASP.NET 認(rèn)證和個性化應(yīng)用服務(wù)。
1.1 使部分頁面輸出可用
當(dāng)頁面中有一個或多個 UpdatePanel 控件時(shí),ScriptManager 控件將管理在瀏覽器中的局部頁面輸出。控件與頁面生成周期交互來更新包含在 UpdatePanel 控件中的局部頁面。
ScriptManager 控件的 EnablePartialRendering 屬性決定了頁面是否可以進(jìn)行局部更新。默認(rèn)情況下,EnablePartialRendering 的值為 true,因此,在默認(rèn)情況下添加了一個 ScriptManager 控件到頁面中時(shí),局部輸出是可用的。
1.2 錯誤處理
在局部輸出期間,可以使用下列方法來處理錯誤:
  • 設(shè)置 AllowCustomErrorsRedirect 屬性,它決定了在異步回發(fā)期間發(fā)生錯誤時(shí),如何使用 Web.config 文件的定制的錯誤節(jié)。
  • 處理 ScriptManager 控件的 AsyncPostBackError 事件,它在異步回發(fā)期間出現(xiàn)頁面錯誤時(shí)觸發(fā)。
  • 設(shè)置 AsyncPostBackErrorMessage 屬性,這是發(fā)送到瀏覽器的錯誤信息。
1.3 使用類型系統(tǒng)擴(kuò)展
Microsoft AJAX 庫添加了 Javascript 的類型系統(tǒng)擴(kuò)展,提供了命名空間、繼承、接口、枚舉、反射以及用于字符串和數(shù)組的輔助功能。這些擴(kuò)展提供了在客戶端腳本中的功能使其看起來像是 .NET 框架。它使你可以使用結(jié)構(gòu)化的方式來編寫ASP.NET 2.0 AJAX 擴(kuò)展應(yīng)用程序,以增強(qiáng)可維護(hù)性、使得更易于添加特性和劃分功能層次。將 ScriptManager 控件到 ASP.NET Web 頁面會自動包含類型系統(tǒng)擴(kuò)展,所以可以在客戶端腳本中使用庫。
1.4 注冊定制腳本
使用 ScriptManager 管理那些為參與局部頁面更新的控件而創(chuàng)建的資源,資源包括腳本、樣式、隱藏字段和數(shù)組。ScriptManager 控件的 Scripts 集合包括了每一個瀏覽器可用的腳本的 ScriptReference 對象。可以用聲明或編程來指定腳本。
ScriptManager 控件還提供了可以用來以編程的方式管理客戶端腳本和隱藏字段的注冊方法。在注冊支持局部頁面更新的腳本和隱藏字段時(shí),必須調(diào)用 ScriptManager 的注冊方法。(要注冊不是局部頁面更新所需要的腳本時(shí),可以使用 ClientScriptManager 類。)
注意:
任何在頁面中由 ScriptManager 控件注冊的腳本和所有事件處理腳本都必須包含在頁面中的 <form> 元素中,否則,腳本將不會被注冊或執(zhí)行。
1.5 注冊 Web 服務(wù)
ScriptManager 控件的 Services 集合中包含了每個使用 ScriptManager 注冊的 Web 服務(wù)的 ServiceReference 對象。ASP.NET AJAX 框架為 Services 集合中的每個 ServiceReference 對象生成一個客戶端代理對象。代理類和它的強(qiáng)類型成員簡化了客戶端腳本使用 Web 服務(wù)。
可以在運(yùn)行時(shí)用編程的方式添加 ServiceReference 對象到 Services 集合中,以注冊 Web 服務(wù)。
1.6 在客戶端腳本中使用認(rèn)證和個性化服務(wù)
Microsoft AJAX 庫包含了直接從 Javascript 中調(diào)用 ASP.NET 2.0 窗體認(rèn)證和個性化應(yīng)用服務(wù)的代理類。如果要使用定制的認(rèn)證服務(wù),可以使用 ScriptManager 控件來注冊。
1.7 ScriptManagerProxy 類
在一個頁面中只能添加一個 ScriptManager 控件。頁面可以直接包含控件,或者包含在嵌套的組件中,如用戶控件、母版頁中的內(nèi)容頁或者嵌套的母版頁。當(dāng)頁面中已經(jīng)有一個 ScriptManager 控件,而嵌套的或父組件需要 ScriptManager 控件的其他特性時(shí),組件就可以包含一個 ScriptManagerProxy 控件。例如,ScriptManagerProxy 控件可以使你添加僅用于嵌套組件的腳本和服務(wù)到相應(yīng)組件中。

2 添加 ScriptManager 控件
直接將 ScriptManager 控件從工具箱中拖到頁面的 <form> 元素中即可得到如下的元素引用,這樣,在它所有的頁面就可以使用 ASP.NET AJAx 了。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

3 客戶端腳本管理示例
3.1 和 3.2 分別展示了將單個程序集中嵌入的腳本或者獨(dú)立的腳本文件添加到頁面中的方法,如果要同時(shí)添加多個腳本,任意按這二個方法在 <Scripts> 元素中添加多個 <asp:ScriptReference>元素即可。
3.1 添加程序集中內(nèi)嵌的腳本
如下代碼展示了向頁面中添加嵌入到 Microsot.Web.Preview 程序集中的 PreviesScript.js 腳本文件。
<asp:ScriptManager ID="ScriptManager1" runat="server">
??? <Scripts>
??? ??? <asp:ScriptReference Assembly="Microsot.Web.Preview" Name="PreviesScript.js" />
??? </Scripts>
</asp:ScriptManager>
3.2 添加單獨(dú)的腳本文件
下列代碼展示了向頁面中添加單獨(dú)的腳本文件 ~/ScriptPath/ScriptFile.js ,可以將它替換成自己所需要的腳本文件使用。
<asp:ScriptManager ID="ScriptManager1" runat="server">
??? <Scripts>
??? ??? <asp:ScriptReference Path="~/ScriptPath/ScriptFile.js" />
??? </Scripts>
</asp:ScriptManager>
3.3 ScriptManager 的相關(guān)屬性
ScriptMode:
ScriptManager 和 ScriptReference 對象都具有 ScriptMode 屬性,它決定向客戶端所發(fā)送的腳本的版本是 Debug 的還是 Release 的。它有四個可選的值:Inherit、Auto、Debug 和 Release。Debug 和 Release 的意義非常明確,就不再解釋。Inherit 表示繼承外層的設(shè)置,對于ScriptManager 來說,相當(dāng)于 Auto。Auto 表示根據(jù)當(dāng)前的編譯模式及 Web.config 中的相關(guān)設(shè)置來自動決定腳本的版本。
ScriptPath :
用于指定頁面中所有腳本塊的相對的、絕對的或應(yīng)用程序相關(guān)的 URL,這包括由當(dāng)前 ScriptManager 實(shí)例注冊的定制的或第三方腳本塊。如果 Scripts 集合中的 ScriptReference 設(shè)置了 Path屬性,Path 屬性將覆蓋 ScriptPath 的設(shè)置。如果沒有設(shè)置此屬性且ScriptReference 指定的是程序集的話,每次請求腳本時(shí)都將用 WebResource.axd 從程序集中解析出腳本后再發(fā)回瀏覽器,而設(shè)置后將直接使用 ScriptPath 下的 js 文件。
LoadScriptsBeforeUI:
當(dāng)此屬性為 ture 時(shí),為引入的腳本生成的 <script>元素將出現(xiàn)在所有頁面的 UI 標(biāo)記之前,否則生成在所有 UI 標(biāo)記之后。如果在加載的過程執(zhí)行需要使用了引入的腳本的腳本的話,就必須設(shè)置其為 true ,否則將無法執(zhí)行。

4 添加 Web 服務(wù)客戶端代理
添加 Web 服務(wù)的客戶端代理與添加腳本類似,如下列代碼所示:
?<asp:ScriptManager ID="ScriptManager1" runat="server">
??? <Services>
??? ??? <asp:ServiceReference Path="MyServices.asmx" />
??? </Services>
</asp:ScriptManager>
另外,在 Web.config 中還需要加入下列配置項(xiàng):
<system.web>
? <httpHandlers>
??? <remove verb="*" path="*.asmx"/>
??? <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,
??? ??? System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
? </httpHandlers>
</system.web>
這樣,在客戶端腳本中就可以直接調(diào)用 Web 服務(wù)的靜態(tài)方法了。

5 處理異步回發(fā)中出現(xiàn)的異常
在此僅介紹最簡單的方式。
通常,在出現(xiàn)異常時(shí),.NET 框架會重定向到一個黃色的異常頁面上,但對于用異步回發(fā)的方式處理的頁面來說,這會是一場災(zāi)難,無法恢復(fù)到原頁面的當(dāng)前狀態(tài)。
可以設(shè)置 ScriptManager 控件的 AllowCustomErrorsRedirect = "false" 來阻止出現(xiàn)異常時(shí)的重定向,設(shè)置 AsyncPostBackErrorMessage 屬性為出現(xiàn)異常時(shí)顯示給用戶的出錯信息。這樣,當(dāng)操作出現(xiàn)異常時(shí),ScriptManager 將自動彈出包含 AsyncPostBackErrorMessage 中設(shè)置的信息的瀏覽器消息框。
?
?
TrackBack:http://www.cnblogs.com/cxy521/archive/2008/01/22/1048257.html

小試 ScriptManager


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲国产精品第一区二区三区 | 国产精品久久久久久麻豆一区 | 日日摸天天摸狠狠摸视频 | 男女黄网站 | 91热国内精品永久免费观看 | 欧美日穴| 97人人在线观看 | 精品一区二区三区在线视频观看 | 国产日韩欧美自拍 | 欧美综合影院 | 午夜免费福利在线 | 九九精品久久 | 国产精品手机在线观看 | 日韩欧美在线一级一中文字暮 | 日韩国产中文字幕 | 2021午夜国产精品福利 | 狠狠操天天| 天天草天天干 | 日韩精品一区二区三区中文在线 | 国产乱码精品一区二区 | 久久精品乱子伦免费 | 色涩播 | 91亚洲视频在线观看 | 亚洲码欧美码一区二区三区 | 妖精视频免费在线观看 | 日本欧美日韩 | 国产第一区二区三区在线观看 | 午夜影院福利 | 国产亚洲精品热视频在线观看 | 欧美在线播放一区二区 | 欧美午夜精品一区二区三区 | 久热精品视频在线播放 | 亚洲天天网综合自拍图片专区 | 91久久99热青草国产 | 欧美精品99久久久久久人 | 精品精品国产理论在线观看 | 99热在线免费播放 | 日日操操干干 | 精品欧美一区二区三区在线 | 国产aaaaaa| 欧美日韩一区二区三区毛片 |