1。[来源:Bertrand Le Roy ]
ASP.NET AJAX Beta 1 and ComponentArt Web.UI
http://blogs.componentart.com/miljan/archive/2006/10/31/ASP.NET-AJAX-Beta-1-and-ComponentArt-Web.UI.aspx
ComponentArt的总裁/创始人 Miljan Braticevic 在博客里说,ComponentArt花了四天时间把他们的AJAX产品从ATLAS早期CTP版本转化成ASP.NET AJAX Beta 1 版本。这个产品包括12个UI控件,超过60个客户端类。他们的感想是,渡过开头的难关后,他们发现ASP.NET AJAX Beta 1版本运行良好而且稳定。在转化过程中遇到的几乎每一个问题,都是由于他们对某个特定的特性的理解不够造成的。对在博客和论坛上别人提到的ASP.NET AJAX Beta 1版本的种种问题,他们认为不能完全归咎于这个Beta 1版本缺陷太多。跟以前的CTP版本相比,这个Beta 1版本有了显著的进步,感觉上已有发布产品的质量水平了。虽然在文档,样例和教程方面还有待提高,好消息是大的变动已经包含在产品里了,开发ASP.NET AJAX应用的大好时机已经来临。
2。[ASP.NET AJAX论坛问题]
UpdateProgress and AssociatedUpdatePanelID not working on master page
http://forums.asp.net/thread/1436858.aspx
在母板页中,Microsoft.Web.Preview.UI.UpdateProgress 的 AssociatedUpdatePanelID设置不工作。究其原因,是因为在寻找对应的UpdatePanel时,现在的编码使用的是Page.FindControl()。参考Reflector中UpdateProgress类的MoveNext的实现:
UpdatePanel panel1 = this.<>4__this.Page.FindControl(this.<>4__this.AssociatedUpdatePanelID) as UpdatePanel;
在一般情形下,FindControl只在当前的NamingContainer下查询。在母板页情形下,由于MasterPage对象实际上是把当前页面包含在其中的,而自己本身成为Page的子对象,NamingContainer的结构跟不用母板页的情形相比,发生了很大的变化。具体请参考Scott Allen的文章:
http://www.odetocode.com/Articles/450.aspx
这样就有个有趣的问题,UpdateProgress 到底应该放在哪里?
在论坛里,bsevo 提供了一个有趣的答案,
UpdateProgress1.AssociatedUpdatePanelID=UpdatePanel1.UniqueID;
即用编程手法把AssociatedUpdatePanelID设置成对应 UpdatePanel 的UniqueID,UniqueID包含了用“$”字符分开的一系列NamingContainer的ID,而FindControl对这样包含“$”的ID是另作处理的。
3。[ASP.NET AJAX论坛问题] 利用ASP.NET AJAX 客户端 Sys.WebForms.PageRequestManager 类的事件,可以很轻松地构造你自己的UpdateProgress控件。Dr.NETjes 在这个帖子里建议了一个方案,抄袭如下:
http://forums.asp.net/thread/1436307.aspx
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler)
function BeginRequestHandler(sender, args)
{
ActivateAlertDiv('visible', 'myUpdatePanel');
}
function EndRequestHandler(sender, args)
{
ActivateAlertDiv('hidden', 'myUpdatePanel');
}
function ActivateAlertDiv(visstring, elem)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
}
</script>
打印 | 张贴于 2006-11-02 04:35:00 | Tag:AJAX/ATLAS
留言反馈