【原文地址】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,开发人员可以编写类似下面这样的编码来响应一个列表的选择变动,并且把列表选择当作标识符添加到浏览器的历史记录中去:
private void
ContentList_SelectedIndexChanged(
object
sender, EventArgs e) {
history.AddEntry(contentList.SelectedIndex.ToString() ;
}
history.AddEntry(contentList.SelectedIndex.ToString() ;
}
你一旦往历史控件里添加新项后,浏览器中的后退/前进按钮就被激活了。Nikhil的历史控件提供了一个Navigate事件,当你在浏览器里按后退/前进按钮时,这个事件就会被触发,同时它在事件处理函数的参数里提供了早先在把逻辑视图添加进浏览器历史记录时所用的那个标识符。然后你就可以使用这个标识符来把页面回复到跟这个历史记录相对应的页面状态了:
private void
HistoryControl_Navigate(
object
sender, HistoryEventArgs e) {
int selectedIndex = 0 ;
if (String.IsNullOrEmpty(e.Identifier) == false ) {
selectedIndex = Int32.Parse(e.Identifier) ;
}
// Update the content being displayed in the page
contentList.SelectedIndex = selectedIndex ;
// Mark the update panels as needing an update
mainUpdatePanel.Update() ;
}
int selectedIndex = 0 ;
if (String.IsNullOrEmpty(e.Identifier) == false ) {
selectedIndex = Int32.Parse(e.Identifier) ;
}
// Update the content being displayed in the page
contentList.SelectedIndex = selectedIndex ;
// Mark the update panels as needing an update
mainUpdatePanel.Update() ;
}
这样你的用户在使用AJAX应用时也能使用前进/后退按钮来作导航了。你可以在这里下载Nikhil的历史控件的编码,开始用在你的项目里。
希望本文对你有所帮助,
Scott
(思归译)