1。Brad Abrams 的

Search autocomplete with ASP.NET AJAX Extensions
http://blogs.msdn.com/brada/archive/2006/10/27/search-autocomplete-with-asp-net-ajax-extensions.aspx

使用ASP.NET 2.0 profile store 和ASP.NET AJAX AutoCompleteExtender实现提示查询字符串

2。[来源:Kirk Allen Evans] UpdatePanel开发人员Eilon Lipton写的2篇关于UpdatePanel的帖子

What's up with UpdatePanels and how come nothing works?
http://forums.asp.net/thread/1440058.aspx

UpdatePanel中最大的变动是在局部更新情形下异步提交中的脚本注册。在早期CTP版本中使用的机制只对简单的情形适用,在复杂的情形下,譬如UpdatePanel中带有一个向导(Wizard)控件的情形,无法在客户端从页面上去掉控件,导致内存泄漏。在ASP.NET AJAX Extensions 1.0 beta版本中,引人了显式注册脚本的模型,这样UpdatePanel知道什么时候该执行什么脚本。ScriptManager多了几个静态的脚本注册方法。

你以前这么调用,

Page.ClientScript.RegisterClientScriptBlock(typeof(Foo), "key", "alert('hello'); ", true);

但现在应该这么调用,

ScriptManager.RegisterClientScriptBlock(this, typeof(Foo), "key", "alert('hello');", true);

通过这些方法的第一个控件参数,可以判断出注册脚本的这个控件是否包含在UpdatePanel内,如果是的话,在异步更新中,可以决定那个UpdatePanel是否就是当前这个正在更新的UpdatePanel。同时这个控件需要实现dispose逻辑,这样,当UpdatePanel在更新时,清除其内容时,可以调用这些脚本“拆除”所用资源。

可能造成的最大问题是,现有的控件,如果它们注册脚本的话,在UpdatePanel内就不工作了,ATLAS产品组知道这个问题,但为长远计,认为这个改动是必须的。

UpdatePanel内会注册脚本的最常用的控件大概是验证控件,所以这些控件都被更新了,即是Microsoft.Web.UI.Compatibility 命名空间下的那些控件,而且在web.config通过tagMapping的机制把原来的验证控件映射到这些新的控件了。在将来,其他注册脚本的控件也会被更新。

 

Buying Into Microsoft ASP.NET AJAX without Necessarily Paying For It
http://forums.asp.net/thread/1445844.aspx

通过反射,编写ASP.NET AJAX-Aware的控件,既能在有ASP.NET AJAX 的情形下,也能在没有ASP.NET AJAX 的情形下使用。为什么要编写ASP.NET AJAX-Aware 控件?因为如果一个控件要存活在UpdatePanel中,

  1. 它需要通过ScriptManager的脚本注册API,而不是使用 Page.ClientScript API。这些新旧API间有一一对应的关系。
  2. 如果该控件配属事件处理函数的话,那么该控件必须实现dispose功能。
  3. 该控件注册的脚本需要分成2个部分:1。脚本库代码,只包含函数和类定义,为该控件的所有实例共享;2。该控件的初始化代码,每个实例各不相同

 

作者提供了一个实例,对如何注册脚本做了详细的介绍。

 

3。Hannes Preishuber

ASP.NET AJAX JSON Date serialization
http://weblogs.asp.net/hpreishuber/archive/2006/10/29/ASP.NET-AJAX-JSON-Date-serialization.aspx

作者发现日期的JSON序列化是 "@977612400000@" 的形式, Sys.Serialization.JavaScriptSerializer.deserialize 使用了正则表达式来反向序列化,不如他的 split/ParseInt/new Date 的效率高。几个月前,Nikhil Kothari 曾提议把日期在JSON中序列化为 @04/15/2006@ ,或 @04/15/2006 12:00:00 PM@ 的形式。