ASP.NET AJAX RC Tip:页面中无UpdatePanel时2
点击次数:29 次 发布日期:2008-11-26 11:03:08 作者:源代码网
|
源代码网推荐 源代码网推荐 于是问题就出现了,如果页面中没有UpdatePanel,那么MicrosoftAjaxWebForms.js文件不会被引入,而那句$create还在!这就导致了JavaScript错误的发生。当时我提供的方法是:那么就在Site.master里强制加上一个UpdatePanel吧。如下: 源代码网推荐 源代码网推荐 强制UpdatePanel 源代码网推荐 <asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UP1"> 源代码网推荐 <ContentTemplate></ContentTemplate> 源代码网推荐 </asp:UpdatePanel> 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 这里把UpdateMode设为了Conditional,也就是说,这里的UpdatePanel永远不会被更新,它的作用只是“强迫”MicrosoftAjaxWebForms.js文件被引入。不过这不是个好的解决方案。 源代码网推荐 源代码网推荐 如果要解决这个问题,不要让$create语句出现不就可以了吗?在查看过代码以后,发现$create语句只会在ScriptManager的EnablePartialRendering属性为True的情况下出现,那么我们就把ScriptManager的这个属性暴露出去吧。我们可以修改一下Site.master.cs中Site类的代码,把它增加一个属性: 源代码网推荐 源代码网推荐 Site.master.cs 源代码网推荐 public bool EnablePartialRendering 源代码网推荐 { 源代码网推荐 get 源代码网推荐 { 源代码网推荐 return this.ScriptManager1.EnablePartialRendering; 源代码网推荐 } 源代码网推荐 set 源代码网推荐 { 源代码网推荐 this.ScriptManager1.EnablePartialRendering = value; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 然后在页面里把MasterPage的EnablePartialRendering属性设为False即可。需要注意的是只有Init阶段才能设置ScriptManager的EnablePartialRendering属性。如下: 源代码网推荐 源代码网推荐 Default.aspx.cs 源代码网推荐 protected override void OnInit(EventArgs e) 源代码网推荐 { 源代码网推荐 base.OnInit(e); 源代码网推荐 源代码网推荐 (this.Master as Site).EnablePartialRendering = false; 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 至此,任务结束。 源代码网推荐 源代码网推荐 http://www.cnblogs.com/JeffreyZhao/archive/2006/12/20/597416.html 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
