【原文地址】Tip/Trick: Enabling Back/Forward-Button Support for ASP.NET AJAX UpdatePanel
【原文发表日期】Thursday, September 14, 2006 12:25 PM

Nikhil最近写了一个好帖子,是关于一个叫做HistoryControl的支持AJAX的新ASP.NET 控件的。把它加到页面上后,允许开发人员用编程手段往浏览器的历史记录里添加逻辑视图(logical view)。这将使得支持AJAX的网站更加有用,而且遵循传统web应用所遵循的标准的前进/后退的导航惯例。

譬如,通过Nikhil的HistoryControl,开发人员可以编写类似下面这样的编码来响应一个列表的选择变动,并且把列表选择当作标识符添加到浏览器的历史记录中去:

``{=html}private void ``{=html}``{=html}ContentList_SelectedIndexChanged(``{=html}``{=html}object ``{=html}``{=html}sender, EventArgs e) {    history.AddEntry(contentList.SelectedIndex.ToString()``{=html}``{=html}; ``{=html}``{=html}}``{=html}

你一旦往历史控件里添加新项后,浏览器中的后退/前进按钮就被激活了。Nikhil的历史控件提供了一个Navigate事件,当你在浏览器里按后退/前进按钮时,这个事件就会被触发,同时它在事件处理函数的参数里提供了早先在把逻辑视图添加进浏览器历史记录时所用的那个标识符。然后你就可以使用这个标识符来把页面回复到跟这个历史记录相对应的页面状态了:

<font color="blue">private void </font><font color="black">HistoryControl_Navigate(</font><font color="blue">object </font><font color="black">sender, HistoryEventArgs e) {

</font><font color="blue">int </font><font color="black">selectedIndex </font><font color="blue"></font><font color="maroon">0</font><font color="blue">;

if </font><font color="black">(String.IsNullOrEmpty(e.Identifier) </font><font color="blue">== false</font><font color="black">) {
        selectedIndex </font><font color="blue"></font><font color="black">Int32.Parse(e.Identifier)</font><font color="blue">;
</font><font color="black">}

</font><font color="darkgreen">// Update the content being displayed in the page
</font><font color="black">contentList.SelectedIndex </font><font color="blue"></font><font color="black">selectedIndex</font><font color="blue">;

</font><font color="darkgreen">// Mark the update panels as needing an update
</font><font color="black">mainUpdatePanel.Update()</font><font color="blue">;
</font><font color="black">}</font>

这样你的用户在使用AJAX应用时也能使用前进/后退按钮来作导航了。你可以在这里下载Nikhil的历史控件的编码,开始用在你的项目里

希望本文对你有所帮助,

Scott

::: postfoot

标签:[ASP.NET](http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx){rel="tag"}, [.NET](http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx){rel="tag"}, [Atlas](http://weblogs.asp.net/scottgu/archive/tags/Atlas/default.aspx){rel="tag"}, [Tips and Tricks](http://weblogs.asp.net/scottgu/archive/tags/Tips+and+Tricks/default.aspx){rel="tag"}

(思归译) :::


Atlas 1.0版的命名和产品发布计划

2006-09-12 by 开心就好

【原文地址】"Atlas" 1.0 Naming and Roadmap
【原文发表日期】Monday, September 11, 2006 10:01 AM

在过去的一年内,我们一直在奋力开发Atlas。Atlas一直在发展,变化和成长,是因为我 …

read more

CSS 控件适配器工具包新版发布

2006-09-10 by 开心就好

【原文地址】CSS Control Adapter Toolkit Update
【原文发表日期】Friday, September 08, 2006 6:53 PM

今天,我们发布了ASP.NET 2.0的CSS控件适配器的更新版本,内中包含了bug fixes,用户建议的 …

read more

IIS 7.0 RC1

2006-09-08 by 开心就好

【原文地址】IIS 7.0 RC1
【原文发表日期】Thursday, September 07, 2006 12:05 AM

你也许已经听说过了,上个星期晚些时候,我们发行了Windows Vista RC1。过去的几 …

read more

IronPython 1.0发布了

2006-09-08 by 开心就好

【原文地址】IronPython 1.0 Released
【原文发表日期】Wednesday, September 06, 2006 1:27 AM

我非常兴奋地宣布,今天我们发布了IronPython .NET项目的V1.0版。点击这里从CodePlex免费下载相关的程序,源码以及教 …

read more

技巧和诀窍:用VS 2005创建可重用的项目和部件模板

2006-09-08 by 开心就好

【原文地址】Tip/Trick: Creating Re-Usable Project and Item Templates with VS 2005
【原文发表日期】Monday, September 04, 2006 1:19 PM

通常地,当你做项目时,你有一个标准的做法你喜欢用 …

read more

.NET 点滴

2006-05-16 by 开心就好

1。Scott Guthrie的博客开始连载怎么在ASP.NET中使用LINQ

Using LINQ with ASP.NET (Part 1)
http://weblogs.asp.net/scottgu/archive/2006/05/14/446412.aspx

第一部分演示了怎么使用五月份LINQ技术预览版提供的LINQ ASP.NET …

read more

LINQ技术预览的新版本发布了

2006-05-12 by 开心就好

ADO.NET 3.0

2006-05-12 by 开心就好

微软推出了下一代数据访问技术的前景,这个技术将随着代号为Orcas的下一个.NET框架版本一起推出。主要技术是ADO.NET Entity Framework,由实体数据模型(Entity Data Model/EDM)以 …

read more

.NET 点滴

2006-04-18 by 开心就好

1。[来源:Scott Guthrie] ASP.NET 2.0 Providers的源码供下载了,很多人都报道这个消息了,这绝对是个好消息

http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi

如果你对Provider模型不熟,可以参考MSDN上的系列文章 …

read more

.NET 点滴

2006-04-11 by 开心就好

1。 [来源:Jesús Rodríguez] W3C发布针对XMLHttpRequest的工作草案

The XMLHttpRequest Object
http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/

2。 [来源:Federal Developer Weblog] Internet Explorer Developer Toolbar

该套工具能帮助开发人员很快地生成网页,理解和排除网 …

read more

.NET 点滴

2006-03-28 by 开心就好

1。根据Scott Guthrie,MySpace.com每天的Page View量高达15亿,他们现在用的是ASP.NET 2.0和IIS6。移植到ASP.NET 2.0后,服务器的CPU平均利用率从85%下降到27%。

http://weblogs.asp.net/scottgu/archive/2006/03/25/441074.aspx …

read more

.NET 点滴

2006-03-17 by 开心就好

1。Team Foundation Server 1.0 正式发布

根据Rob Caron,拥有 Team Suite(或角色Team Editions)的,不久就可以下载限为5个用户的Team Foundation Server Workgroup Edition

2。 [来源:Bertrand Le Roy]   Ruby.NET
由澳大利 …

read more

第16届Jolt Product Excellence奖

2006-03-17 by 开心就好

在第16届Jolt Product Excellence奖中,微软产品获的奖:

1。企业项目管理类别,Visual Studio Team System 2005获得Productivity奖(该类别的Jolt奖得主为Welcom的WelcomRisk 2.6)
2。数据库引擎和数据工具类别,SQL Server 2005获得Jolt 奖 …

read more

.NET 点滴

2006-03-10 by 开心就好

1。在ASP.NET占用高内存时的几则快速检测
Quick things to check when you experience high memory levels in ASP.NET
http://support.microsoft.com/kb/893660/en-us
[来源: Suresh Behera]

2。在没有安装VS 2005的情形下怎么使用网站管理工具
http://blogs.msdn.com/rahulso/archive/2006/03/09/547402.aspx

3。3月23日, 4月20日 …

read more

【大惊小怪】 HtmlControl之Site属性

2006-03-03 by 开心就好

这几天在翻看《Professional ASP.NET 2.0》一书,在第110页上看到列出的HtmlControl的Site属性

Site

Provides information about the Web site for which the server control belongs.

!&\$@#*\^@%\$@!??有点发晕,查看Visual Studio 2005的文档,

Site

Gets information about the container that hosts the current control when …

read more

.NET 点滴

2006-02-28 by 开心就好
  1. [来源Anand Iyer] 从3月6日开始,微软将推出一系列的ASP.NET 2.0 Webcast ,而且还有礼物赠送

http://www.learn2asp.net/campaign.aspx

  1. 2月份WCF CTP的变动

What happened to IChannelBehavior?
http://blogs.msdn.com/mahjayar/archive/2006/02/26/539736 …

read more

.NET 点滴

2006-02-23 by 开心就好
  1. MSDN上的ASP.NET《怎么做。。。》系列教学录像,包括缓存,定制登陆门户,Master Pages/Site Navigation/Membership/Roles/Profiles/Themes,Web Parts/Personalization等等

http://msdn.microsoft.com/asp.net/learning/learn/newtodevelopment/default.aspx

当然,这里还有ASP …

read more

安装Team Foundation Server

2006-02-04 by 开心就好

应老板要求,在一个空白的Windows 2003机器上安装Beta 3 Refresh版。这次的经历比安装Beta 2时要好多了。读著Team Foundation Installation Guide,按步就班地安装,一次成功。就是在安装SQL Server 2005企业版时有点问题 …

read more

新的VB 9 LINQ CTP 版

2006-01-25 by 开心就好

该版不是早先发行的PDC版的简单更新,而是包含了新的编码。新的功能包括

1。IDE的LINQ Intellisense支持
2。对DLinq比较多的 支持
3。编译器对编辑XML字符串的支持
4。XML后期绑定,包括XML命名空间的Import写法,IEnumerable的索引器等
5。XML内嵌表达式句法的统一,全 …

read more

WinFX 一月份的社区技术预览版(CTP)出来了

2006-01-19 by 开心就好

[来源: Michael Swanson, Tim Sneath]

同时还提供WCF/WWF的Go-Live licenses,但由于客户端环境的难控制性,目前还没有WPF的Go-Live license

WinFX Runtime Components:
http://www.microsoft.com/downloads/details.aspx?FamilyId=61DD9CA7-1668-42E4-BD37-03716DD83E53&displaylang=en  

Go-Live licenses …

read more

匿名代码块

2006-01-17 by 开心就好

读到Ruby里有个东西叫code block,它支持closure。

list = [1,2,3,4,5,6,7,8,9,10]
sum = 0
list.each() <font color="#ff0000">{|i| sum = sum + i}</font>

这里,<font color="#ff0000">红字的{....}</font>的东西 …

read more

又一个里程碑,又见无数不眠夜

2005-10-28 by 开心就好

,传送着VS2005正式版本发行的喜讯。虽然想着又要卸载各个机器上的Beta版本甚至重新格式化,但想想那种对正式版本的等待终于要过去了,又是无限的 …

read more

代码生成器 SQLMetal

2005-09-18 by 开心就好

随LINQ一起来的工具里,有个Entity Class Generator Tool,叫SQLMetal,能连接到数据库直接产生跟数据表对应的Entity Class,就象上个帖子里的例子一样

SqlMetal /server:(local) /database:DLINQ /delayfetch /pluralize /namespace …

read more

LINQ非常酷

2005-09-16 by 开心就好

读完文档,I am in awe,虽然感觉这玩意带来的编程模型的变化会很大

对DLINQ的基于属性的做法

[Table(Name="Customers")]
public class Customer
{
 [Column(Id=true)]
 public string CustomerID;
 [Column]
 public string City;
}

不是很认 …

read more

New features in C# 3.0

2005-09-15 by 开心就好

Anders Hejlsberg接受Channel 9的采访,谈到如何把数据编程与对象编程统一起来

也参考

The LINQ Project

上面有 LINQ的技术预览,包括示范程序,白皮书文档,hands-on labs以及为使用LINQ技术编程所需的编译器支持,可以在Visual Studio 2005 …

read more

也做个比较

2005-08-19 by 开心就好

Joshua Bloch 是Java语言组的设计师,去年离开Sun加盟Google,他的《Effective Java》一书在Java界影响很大。最近与Google的同事Neal Gafter (也是前Sun雇员) 合写了《Java Puzzlers: Traps, Pitfalls, and Corner Cases》。该书的几个条目以及全部Source Code可以在www …

read more