`
wangdeshui
  • 浏览: 259014 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用ASP.NET 3.5 Extensions管理浏览器历史:使用服务器端

阅读更多

我们知道当我们使用ASP.NET AJAX的一些方便的服务端控件如UpdatePanel,我们的浏览器不能保存这些异步浏览的页面状态,而ASP.NET3.5 Extensions给我们提供了一个解决方法,下面演示一下使用实例:

一:简单示例

1. 首先下载安装ASP.NET 3.5 Extensions

2.新建一个ASP.NET3.5 Extensions Web Application

image

3. 向页面拖动一个ASP.NET3.5 Extensions下的ScriptManger和UpdatePanel

image

4. 修改Default.aspx,注意黄色部分

EnableHistory默认是false,要设为true, EnablestateHash就是地址栏是否加密

image

5. 修改Default.aspx.cs

image

当我们需要保存信息时,添加一个历史点,保存供还原时使用的一些信息,然后当点击后退按钮时,会执行ScriptManager_Navigate来使用我们保存的信息。

6.效果

image image

7.原理

我们看一下页面的源码,发现如果我们EnableHistory="true",会自动给我们页面添加一个Iframe,当我们后退,前进时这些还原点是更改Iframe.

image

二、分页示例:

1.修改页面Default.aspx如下:

image

2. 修改页面Default.aspx.cs如下:

我们添加一个List来提供数据源,完整代码如下:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
//Descirption: demo ajax history
//Created by: Jack Wang 

namespace AjaxHistory
{
    
public partial class _Default : System.Web.UI.Page
    
{
        
private static string historyTime = "historyTime";
        
private  List<Student> students = new List<Student>();
        
protected void Page_Load(object sender, EventArgs e)
        
{
            
for (int i = 0; i < 20; i++)
            
{
                students.Add(
new Student { Name = "TestName" + i.ToString(), Address = "Street" + i.ToString(), age = i });
            }

            
if (!Page.IsPostBack)
            
{
                
this.GetData();
            }

        }

        
protected void mGetTimeButton_Click(object sender, EventArgs e)
        
{
            
this.mResultTimeLabel.Text = DateTime.Now.ToString();
            ScriptManager.GetCurrent(
this).AddHistoryPoint(historyTime, this.mResultTimeLabel.Text, DateTime.Now.Second.ToString());
        }
 

        
protected void ScriptManager1_Navigate(object sender, HistoryEventArgs e)
        
{
            
//restore time label
            if (!String.IsNullOrEmpty(e.State[historyTime]))
            
{
                
this.mResultTimeLabel.Text = e.State[historyTime].ToString();
            }
 

            
//restore gridview result
            if (!string.IsNullOrEmpty(e.State["gridviewResult"]))
            
{
                GridView1.PageIndex 
= Int32.Parse(e.State["gridviewResult"]);
                
this.GetData();
            }

        }
 

        
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        
{
            GridView1.PageIndex 
= e.NewPageIndex;
            
//just need save page index for history
            ScriptManager.GetCurrent(this).AddHistoryPoint("gridviewResult", e.NewPageIndex.ToString(), "gridviewResult"+e.NewPageIndex.ToString());
            
this.GetData();
        }
 

        
public void GetData()
        
{
            GridView1.DataSource 
= students;
            GridView1.DataBind();
        }

    }
 

    
public class Student
    
{
        
public string Name getset; }
        
public int age getset; }
        
public string Address getset; }
    }

}
 

 

3.效果:

image

本文示例代码下载:http://www.cnblogs.com/Files/cnblogsfans/AjaxHistory.rar

我的这篇博客里写了使用ASP.NET 3.5 Extensions管理浏览器历史:使用客户端


分享到:
评论

相关推荐

    .net中ajax.net中使用方法

    1. **安装AJAX Extensions**:如果你使用的是.NET Framework 3.5或更低版本,需要安装ASP.NET AJAX Extensions。 2. **启用AJAX支持**:在Visual Studio中创建一个新的ASP.NET Web应用程序时,可以选择"Enable Ajax...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    7.2 客户端和服务器端的验证 194 7.3 ASP.NET验证服务器控件 195 7.3.1 验证原因 196 7.3.2 RequiredFieldValidator服务器控件 196 7.3.3 CompareValidator服务器控件 201 7.3.4 RangeValidator服务器控件 204 ...

    ASP.NET2.0高级编程(第4版)1/6

    本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...

    AjaxControlToolkit.Binary.NET35

    4. **兼容性**:与ASP.NET AJAX Extensions紧密集成,支持各种浏览器,包括Internet Explorer、Firefox、Chrome等。 5. **自定义行为**:除了控件,还提供了可添加到现有控件上的行为(Behaviors),如...

    Ajax经典教程

    - 为了充分利用 ASP.NET AJAX Extensions 的功能,建议使用 Visual Studio 2008 和 .NET Framework 3.5。 - 注意测试不同浏览器下的兼容性问题。 #### 五、实战演练示例 1. **创建项目**: - 在 Visual Studio ...

    .net FrameWork4.0安装包

    3. **ASP.NET**:这是.NET Framework中的Web应用程序开发平台,允许开发者使用HTML、CSS、JavaScript以及服务器端.NET语言(如C#或VB.NET)创建动态网站和Web应用。 4. **Windows Forms**:这是一个用于构建桌面GUI...

    使用ASP.NET一般处理程序或WebService返回JSON的实现代码

    这段jQuery代码向服务器端的handler.ashx发出请求,并将返回的JSON数据中的message字段显示在弹窗中。 至于使用WebService返回JSON数据,方法与使用一般处理程序类似,但需要在Web.config中进行特定的配置。对于...

    在ASP中添加flash

    在ASP.NET中添加Flash涉及到网页动态内容展示技术的融合,主要目标是将Adobe Flash的交互性和视觉效果融入到基于ASP.NET的Web应用中。FlashControl是实现这一目标的关键组件,它允许开发者在ASP.NET页面中嵌入Flash...

    AJAX_tutorial04_Localization_cs.pdf

    然而,其服务器端处理模式存在一定的局限性,而这些局限性可以通过.NET Framework 3.5中的`System.Web.Extensions`命名空间所包含的新特性来解决。此命名空间封装了Microsoft AJAX服务,为开发者带来了许多富客户端...

Global site tag (gtag.js) - Google Analytics