思归呓语

衣带渐宽终不悔,为伊消得人憔悴
随笔 - 413, 评论 - 2971, 引用 - 245

导航

关于

标签

每月存档

最新留言

广告

 

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

留言反馈

暂时没有留言纪录
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0