随心所欲

做个幸福的人
posts - 147, comments - 1402, trackbacks - 28, articles - 0
  博客园 :: 首页 :: 新随笔 ::  :: 订阅 订阅 :: 管理
准确的说,在UpdatePanel中动态加载含有AtlasControlToolkit的控件/页面时,要谨慎。

这应该是现在这个版本的Atlas的一个bug。


UpdatePanel在更新时,全页回发(因为asp.net的页面只有一个Form),然后操作完成之后,只把指定的UpdatePanel的html更新,并没有更新整个页面。所以在这个过程中,任何针对整个页面的操作都得谨慎。

一个例子就是在updatePanel完成时触发一个js,这个就不能直接Reposne.Write(js)来完成。这个还有些其他方法可以解决,但是如果需要在页面注册一个服务的引用的话,问题就来了。

这是一个使用CollapsiblePanelExtender的例子。在运行之后,可以在页面源代码中找到这样的注册语句
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005" xmlns:atlascontrolextender="atlascontrolextender" xmlns:atlascontroltoolkit="atlascontroltoolkit">
  
<references>
    
<add src="/SimpleFramework3/WebResource.axd?d=Ioi8xHST7lcO8WyMX8M1Qp01HVRZOqaHXtXlrWnSa8qBoUOooDu5bAELmzds1wN-b1-u5YUN4fWuliZSecml92eFfFLwwy_8K5S-adm8Yz5yBfnq0SF1wAuzr77-pr4C0&amp;t=632799165960000000" />
    
<add src="/SimpleFramework3/WebResource.axd?d=89z_PdkPvsat7v7eSPM89jZhS5cY0rlRtRNdcXFnl0gOfvpgs0I0GXKI0W5-Ll_TF2sqQzl3lxlywA9AMVtb9WDixdmjxbG3tn4nNwGkqBo1&amp;amp;t=632823506800000000" />
    
<add src="/SimpleFramework3/WebResource.axd?d=8FjwyPB6e4Kf9s7i1G28KofGaKHx4MhV4uNL3IS6wh5HuMaN0lgm8TlIE4nHVnIDKm-cpHtwfXqX-avK1ifzy2khSmUR5wx-qmL1K8n7jRDsqfSIaqrGCeTCtCDelEJW0&amp;amp;t=632830263573107152" />
  
</references>

在这样的情况下,toolkit运行时没有问题的。

但是如果你这样使用就会出现问题:在页面上的一个UpdatePanle里面放置一个按钮,然后再其处理事件里面执行一个加载带有ToolKit控件应用的ascx页面到本页的另外一个UpdatePanel里面。然后运行一下,看看,一定会出错。

出错的提示大致是这样的“找不到控件xx命名空间的引用”。

在这个例子里面,如果我们提前先加上一个CollapsiblePanelExtender在页面上(放置按钮的aspx页面),那么就不会出现这个错误了。(遗憾的是,会持另外一个错误:只有一个控件可用。每次刷新之后的结果不一样。这一个,问题就更加严重了,这说明了atlas现在还是有很多问题存在的。)

出错的原因是这样的:
1:页面第一次加载(页面上没有toolKit控件,所以,这时叶面上没有注册引用)
2:按钮代码执行加载,页面无法判断要加载的ascx控件里面有Toolkit,所以,页面上依然没有注册
3:加载ascx,结果展示给用户。但是ascx上的控件需要注册,而页面上却没有,所以,atals的runtime运行出现异常。


解决的办法,现在有一个比较下X的,就是在要进行加载带有toolkit的控件之前,先在叶面上放置几个假的注册应用。

 
如此有关的是,atals在处理页面上的js函数的时候也是很有特点的:他把所有的js都放到一个block里面。
这样做的后果之一就是这些js可能会互相“干扰”,平时写的一些js可能在这里无法运行。因为有的js的<!--注释可能会把你的js注释掉。这也是我在开发过程中遇到的一个问题。


希望下一个版本会好起来。

Feedback

#1楼    回复  引用    

2006-05-25 17:23 by jianchen [未注册用户]
等待他们的更新。

#2楼    回复  引用  查看    

2006-05-25 22:24 by Zhongkeruanjian      
唉,问题还有一大把,现在WWW.ASP.NET的ATLAS论坛上都快闹翻天了。

现在估计是最火的子坛了。

#3楼 [楼主]   回复  引用  查看    

2006-05-31 11:39 by 随心所欲      
没办法,微软一下子推出这么多东西,质量上真是不好保证。




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-07-12 11:28 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接:

历史上的今天:
2005-05-23 Blog的SmartClient
2005-05-23 SoapFormatter格式化数据比较
 
Google