官术网_书友最值得收藏!

  • 決戰(zhàn).NET
  • 黃忠成
  • 442字
  • 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控件。

主站蜘蛛池模板: 沛县| 乐安县| 隆德县| 汝城县| 翼城县| 高雄县| 武汉市| 马龙县| 东辽县| 乌恰县| 怀化市| 胶州市| 昭苏县| 宜都市| 三都| 宜都市| 驻马店市| 奇台县| 长阳| 肇州县| 合作市| 霍山县| 四会市| 伊金霍洛旗| 含山县| 甘孜县| 东兰县| 逊克县| 屯昌县| 塔河县| 永城市| 民丰县| 桑日县| 永定县| 清镇市| 瓦房店市| 浮梁县| 兖州市| 徐州市| 南召县| 宜丰县|