Subscriptions & Downloads
Subscribe to everything.
Back to the original url on the ASP.NET Podcast site.
Subscribe to WMV.
Subscribe to M4V for iPod.
Subscribe to MP3.
Download WMV.
Download M4V for iPod.
Download MP3.
Show Notes:
Images:
This is the UpdatePanel with EnableSecureHistoryState set to true
This is the UpdatePanel with EnableSecureHistoryState set to false.

Source Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpdatePanelHistory.aspx.cs" Inherits="UpdatePanelHistory"
%>
<!DOCTYPE html
PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>UpdatePanel
History Button</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="scm" runat="server"
EnableHistory="true"
OnNavigate="scm_Navigate"
/>
<div>
<asp:Button ID="btnSubmit" runat="server" Text="Click Me!"
onclick="btnSubmit_Click" />
<asp:UpdatePanel ID="upl" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblTime" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using
System.Collections.Specialized;
public partial
class UpdatePanelHistory
: System.Web.UI.Page
{
protected void Page_Load(object
sender, EventArgs e)
{
}
protected void scm_Navigate(object
sender, HistoryEventArgs he)
{
NameValueCollection
pageState = he.State;
string
dtS;
if
(pageState != null)
{
dtS = pageState.Get("Time");
if
(!String.IsNullOrEmpty(dtS))
{
lblTime.Text = dtS;
}
else
{
lblTime.Text = String.Empty;
}
upl.Update();
}
}
protected void btnSubmit_Click(object
sender, EventArgs e)
{
string
dtS = DateTime.Now.ToString();
lblTime.Text = dtS;
if
((scm.IsInAsyncPostBack == true) &&
(scm.IsNavigating != true))
{
AddHistoryPoint(dtS);
}
}
private void AddHistoryPoint(string
HistoryPoint)
{
NameValueCollection
pageState = new NameValueCollection();
pageState.Add("Time",
HistoryPoint);
scm.AddHistoryPoint(pageState, "Time:" + HistoryPoint);
}
}