知识大全 使用ASP.NET AJAX实现幻灯片效果

Posted

篇首语:自由的生活方式是借知识和洞察获得的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用ASP.NET AJAX实现幻灯片效果相关的知识,希望对你有一定的参考价值。

使用ASP.NET AJAX实现幻灯片效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

Type registerNamespace( Demo );Demo SlideShow=function()    this _slides=new Array();    this _delay= ;    this _currentIndex= ;    this _pause=false;Demo SlideShow prototype=    get_Slides:function()            return this _slides;             set_Slides:function(value)            this _slides=value;             get_Delay:function()            return this _delay;             set_Delay:function(value)            this _delay=value;             get_CurrentIndex:function()            return this _currentIndex;             set_CurrentIndex:function(value)            if(value< )                    this _currentIndex=this _slides length ;            return;                if(value>=this _slides length)                    this _currentIndex= ;                else                    this _currentIndex=value;                     get_IsPaused:function()            return this _pause;             set_IsPaused:function(value)            this pause=value;             Pause:function()            this _pause=true;             Play:function()            this _pause=false;        window setTimeout( slideshow ShowImage()     this get_Delay());             ShowFirst:function()            this _currentIndex= ;        this ShowImage();             ShowLast:function()            this _currentIndex=this _slides length ;        this ShowImage();             ShowNext:function()            var newIndex=this _currentIndex + ;        this set_CurrentIndex(newIndex);        this ShowImage();             ShowPrevious:function()            var newIndex=this _currentIndex  ;        this set_CurrentIndex(newIndex);        this ShowImage();             ShowImage:function()            var img=$get( Image );    if(img style visibility== hidden )          img style visibility= visible ;              var slides=this get_Slides();        var curIndex=this get_CurrentIndex();        img src=slides[curIndex];        if(this get_IsPaused()==false)                    this set_CurrentIndex(curIndex+ );            this Play();            Demo SlideShow registerClass( Demo SlideShow );var slideshow=new Demo SlideShow();

  这段代码的开头部分注册了一个名为Demo的命名空间 然后创建了一个名为SildeShow的类 在SildeShow类的构造函数内声明了 个成员变量 _slides变量是一个数组 其内的元素就是图片的URL _delay变量指明了图片转换的间隔时间 单位是毫秒 _currentIndex变量保存的是当前图片在_slides数组中的索引 最后 _pause变量用来说明是否暂停幻灯片的显示 暂停就是true 运行就是false  在SlideShow类的prototype中定义了 个属性 分别是Slides Delay CurrentIndex和IsPause 它们都有getter和setter 顾名思义 我就不对这些属性做过多的解释了 但是set_CurrentIndex()我要好好说明一下 这个属性首先会检查传来的值 如果值超出了Slides数组的范围 那会它会根据条件进行判断 设置该值为 或数组内元素总数减 其本质上就是让幻灯片可以循环播放  Pause()方法用于设置_pause变量为true 调用这个方法会使幻灯片暂停播放  Play()方法用于启动幻灯片 首先设置_pause变量为false 然后调用window的setTimeout()方法 setTimeout()方法需要两个参数 分别是在指定的延迟时间后需要执行的代码和延迟时间(单位 毫秒) 在我们的这个例子中 延迟时间就是get_Delay()属性的值 需要调用的代码就是ShowImage()方法  ShowImage()方法是用来显示图片的 它用到了CurrentIndex属性和Slides属性 它从Slides数组中读取一个图片路径 并设置给img标签的src属性 注意 Image 是我们稍后将会增加的img标签的ID 另外 注意一下我们使用的$get()方法 它相当于document getElementById()方法 Play()方法每被调用一次 CurrentIndex属性就会自加 用这种方法 幻灯片就会不断地循环显示  ShowFirst() ShowLast() ShowNext()和ShowPrevious()方法用于调整_currentIndex变量 从而调用ShowImage()方法显示相关的图片  写完这个类后 我们再用ASP NET AJAX的registerClass()方法来注册这个类 最后 声明一个SlideShow类的全局变量 开发Web Form 在Visual Studio中新建一个web form 确保页中有ScriptManager控件 添加一个两行一列的HTML表格 在第一行中添加一个<img>标签 在第二行中添加 个HTML按钮 完成后的web form如下图所示

  

像上图所示那样设置 个按钮的value属性  接下来 选择ScriptManager控件 并设置它的EnablePageMethods属性为true 然后 像如下这样添加JScript js文件的引用

  

创建一个用来返回图片URL的web method SlideShow类允许你使用Slides属性来指定图片数组 我们可以设置Slides属性为一个固定的图片链接数组 但是 更合适的方法是动态地从服务端获得图片链接数组 这样你就可以返回一个基于某些条件生成的图片链接数组 或者应付某些数据库驱动的逻辑 为了实现这样的功能 我们来创建一个返回图片链接数组的web method 这个web method将被客户端的JavaScript调用  转到web form的后置代码中 增加如下所示的web method [WebMethod]public static string[] GetSlides()    string[] slides = new string[ ];    slides[ ] =  images/slide jpg ;    slides[ ] =  images/slide jpg ;    slides[ ] =  images/slide jpg ;    slides[ ] =  images/slide jpg ;    return slides;

  GetSlides()是一个静态方法 并被标记了[WebMethod]属性 它将返回一个图片链接数组 为了方便 我们在示例程序中是通过硬编码得到数组的 你可以将它改为从数据库中取值

  用JavaScript调用GetSlides()方法 现在 我们需要用客户端的JavaScript来调用上面的web method 即GetSlides()方法 转换到HTML源视图 并在web form的<head>节点内添加一个<script>块 如下所示

<script type= text/javascript >function pageLoad()    var img=$get( Image );     img style visibility= hidden ;     PageMethods GetSlides(OnSuccess OnError OnTimeOut);        function OnSuccess(result)    slideshow set_Slides(result);    slideshow set_Delay( );    slideshow Play();        function OnError(result)    alert(result get_message());function OnTimeOut(result)    alert(result);</script> 这段脚本内包含一个pageLoad()方法 只要web from在客户端被加载 AJAX框架就会自动地调用它 它非常像ASP NET里的Page_Load事件 在pageLoad()方法中 首先隐藏了图片 然后通过内置的PageMethods类的帮助 调用了GetSlides()方法 在ASP NET AJAX中 所有的执行都是异步的 所以GetSlides()方法是有回调函数的 并且其回调函数分别会在执行成功 出错或超时的时候被调用  OnSuccess()函数接收一个通过GetSlides()方法返回的字符串数组为参数 然后设置SlideShow类的Slides属性 再往下是设置幻灯片的延迟时间为 毫秒 最后 它调用SlideShow类的Play()方法来开始运行幻灯片 OnError()和OnTimeOut()分别用于显示错误信息 接下来 像下面这样修改button标记 <input id= Button   onclick= slideshow ShowFirst()  /><input id= Button   onclick= slideshow ShowPrevious()  /><input id= Button   onclick= slideshow Pause() /><input id= Button   onclick= slideshow Play() /><input id= Button   onclick= slideshow ShowNext()  /><input id= Button   onclick= slideshow ShowLast() /> 你可以看到 button的onclick事件分别调用对应的SlideShow类的方法  就是这些东西 很简单吧 运行这个web form 你就会在浏览器中看到我们的幻灯片 作者 Bipin JoshiEmail x 简介 Bipin Joshi是的管理员 他是的发起人 这个公司提供 NET framwork的培训和咨询服务 他在印度孟买为开发者提供培训 他也是微软的MVP(ASP Net)和ASPInsiders的会员 cha138/Article/program/net/201311/12520

相关参考

知识大全 asp.net中使用jquery的ajax来post数据的树控件

   我相信大部门的net开发人员还在完全使用框架开发或者有一部分人是和mvc项目都有在做对于传统的如果要有好的体验那么ajax效果当然不可少…  &

知识大全 ASP.NET之用AJAX设置进度条

ASP.NET之用AJAX设置进度条  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 ASP.NET与Ajax的实现方式

ASP.NET与Ajax的实现方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 ASP.NET 的MVC结构之AJAX

ASP.NET的MVC结构之AJAX  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET

知识大全 ASP.NET中AJAX编程开发指南

ASP.NET中AJAX编程开发指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixin

知识大全 ASP.NET中使用AJAX的简单方法

ASP.NET中使用AJAX的简单方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  据我所知这

知识大全 Asp.Net+Jquery.Ajax详解5-$.getScript

Asp.Net+Jquery.Ajax详解5-$.getScript  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 在ASP.NET中使用AJAX的简单方法

在ASP.NET中使用AJAX的简单方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍  

知识大全 ASP.NET中使用无框架的Ajax实例

ASP.NET中使用无框架的Ajax实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们需要

知识大全 Asp.net MVC 中Ajax的使用

Asp.netMVC中Ajax的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MVC抛弃了