書(shū)名: 決戰(zhàn).NET作者名: 黃忠成本章字?jǐn)?shù): 442字更新時(shí)間: 2018-12-27 16:55:59
3.9 另一種解法:ScriptManagerProxy控件與UserControl
通過(guò)ScriptManager的Scripts來(lái)解決UserControl控件中包含JavaScript的解法雖然可行,但這并非完美解法,加載者與被加載者因?yàn)镾cripts的聯(lián)結(jié)而糾纏,若加載者事先無(wú)法得知被加載者需要哪些Script,那么就得一股腦將所有可能用到的Script全都設(shè)定于ScriptReference中,不管從架構(gòu)還是效能來(lái)看,這都不是好現(xiàn)象!完美的解法應(yīng)該由被加載者來(lái)繪制自己要使用的Script。幸運(yùn)的,ASP.NET AJAX提供了一個(gè)ScriptManagerProxy控件,只要將其放到UserControl上,并通過(guò)其Script屬性來(lái)設(shè)定要加載的.js文件即可。當(dāng)UserControl被加載時(shí),ScriptManagerProxy控件中的所有設(shè)定將會(huì)被疊加到使用此UserControl之頁(yè)面中的ScriptManager控件上,也就是說(shuō)ScriptManagerProxy控件的ScriptReference設(shè)定在UserControl加載時(shí),會(huì)自動(dòng)添加到使用此UserControl頁(yè)面上的ScriptManager控件的ScriptReference內(nèi)。以本節(jié)的例子為例,只要在UserControl中放置一個(gè)ScriptManagerProxy控件,通過(guò)其Scripts屬性來(lái)添加引用JScript.js,就可從使用頁(yè)面的ScriptManager內(nèi)的Scripts中刪除JScript.js的引用了,完全將加載那些Scripts的權(quán)利交給被加載的UserControl自行決定。同樣的,如果UserControl中需要引用Web Services,而不想直接設(shè)定于使用頁(yè)面上的ScriptManager控件,一樣可通過(guò)ScriptManagerProxy的Services來(lái)引用Web Services。簡(jiǎn)略地說(shuō),ScriptManagerProxy控件是ScriptManager控件的一個(gè)Proxy,所有設(shè)定在其上的信息,都會(huì)在UserControl加載時(shí)被疊加到使用頁(yè)面上的ScriptManager控件。
- Visualforce Development Cookbook(Second Edition)
- PostgreSQL 11 Server Side Programming Quick Start Guide
- 傳感器技術(shù)實(shí)驗(yàn)教程
- Getting Started with Containerization
- 統(tǒng)計(jì)策略搜索強(qiáng)化學(xué)習(xí)方法及應(yīng)用
- 可編程序控制器應(yīng)用實(shí)訓(xùn)(三菱機(jī)型)
- Linux:Powerful Server Administration
- 悟透AutoCAD 2009案例自學(xué)手冊(cè)
- 手機(jī)游戲程序開(kāi)發(fā)
- Mastering pfSense
- MATLAB-Simulink系統(tǒng)仿真超級(jí)學(xué)習(xí)手冊(cè)
- Linux系統(tǒng)下C程序開(kāi)發(fā)詳解
- 強(qiáng)化學(xué)習(xí)
- 空間機(jī)器人
- 實(shí)戰(zhàn)Windows Azure