网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

使用jQuery,CSS,JSON和ASP.NET打造一个新闻轮换控件【附实例源码】

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

效果图预览: 【示例源码下载

这个新闻轮换控件能在网页上的同一个地方显示几条新闻。新闻被拆开几页,为了放置在一个指定的区域。每一页也能包含一对新闻列表。 通过点击底部的页码,能够在不同的页面之间导航,点击页的每个新闻项,就能查看新闻的详细信息。新闻能像幻灯片一样去查看。它提供自动切换下一个(幻灯片)功能,以及过渡的样式。

使用JQuery为了:

1、对web server进行JQuery Ajax Request请求,得到JSON格式新闻
2、绑定数据(JSON格式的新闻)到HTML控件
3、在数据binding之后设置控件的样式
4、新闻之间的导航
5、用户交互
6、改变和设置样式
7、实现javascript的效果
新闻滚动控件使用ASP.NET从新闻存储(例如数据库,xml文件,rss,)汇集新闻。将它转化成指定类型(NewsItem)。 然后将newsItem对象的集合转化成JSON格式的数据,作为新闻的数据来源发送到客户端。

这个控件使用开源的Json.NET类库,它使JSON格式的数据在.NET中使用更加的方便。这个类库的关键的功能包括一个灵活的JSON序列化,能快速的将.net类转换成JSON ,将JSON转换成.net类。了解更多的Json.NET类库(代码。示例,和文档),点击这里。

新闻轮换控件主要使用 jQuery Image Rotator sample的思想。 通过Soh Tanaka 的描述,你能找到更多的关于如何去构造一个滚动的图片效果。

这个新闻滚动控件使用 jQuery Cycle 插件来旋转新闻插件,它是一个轻量级的幻灯片插件,在页面上,这个插件为开发者提供强大的旋转能力来轮转不同类型的HTML控件。了解更多的 jQuery Cycle 插件,点击这里。
你需要使用该控件:
1、引用必要的资源到你的HTML页面(.aspx页面):

  1. <head> 
  2.     <script src='http://www.codeproject.com/jquery.js'  
  3.             type='text/javascript'></script> 
  4.     <script src='http://www.codeproject.com/jquery.cycle.all.min.js'  
  5.             type='text/javascript'></script> 
  6.     <script src='http://www.codeproject.com/TopNews.js'  
  7.             type='text/javascript'></script> 
  8.     <link href='http://www.codeproject.com/TopNews.css'  
  9.             rel='stylesheet' type='text/css' /> 
  10. </head> 

2、在你的.aspx页面中注册和嵌入TopNews.ascx控件。

  1. <%@ Register Src="~/TopNews.ascx" TagName="TopNews" TagPrefix="ctrl" %> 
  2. <body> 
  3.     <form id="form1" runat="server"> 
  4.     <div> 
  5.         <ctrl:TopNews runat="server" id="TopNews1" /> 
  6.     </div> 
  7.     </form> 
  8. </body> 

3、 一开始控件通过调用DOM尾部的JavaScript 的TopNews() 函数。 这个函数向服务端发送一个Ajax请求。得到JSON格式的新闻。然后将新闻绑定到控件上面。 在绑定之后,设置控件的样式,接着滚动新闻。

  1. <script type="text/javascript"> 
  2.     new TopNews('#Container', 7,true,6000); 
  3. </script> 

TopNews 函数参数描述:

  1. TopNews function parameters: 
  2. parameter 1(objRoot): newsRotator control container (a jquery selector), 
  3. the control uses this parameter as a prefix (root object) of every 
  4. jquery selector inside the control.this prefix helps to have multiple instance 
  5. of control in the page without any worry of jquery selection conflict. 
  6. parameter 2(newsCountPerPage): number of news items in a page. 
  7. parameter 3(viewSubtitle): a boolean value makes subtitle section 
  8. of the control enable or disable. the rest of the news titles shows 
  9. in the subtitle section randomly at the bottom of the current page. 
  10. parameter 4(Interval): news rotation (slideshow) interval in millisecond. 

4、 需要一个服务端来收集新闻。 然后将新闻转化成JSON格式,将它发送到客户端。

在客户端,我们使用Jquery发送一个Ajax请求去调用服务端的方法。

  1. //call ASP.NET page method asynchronous (send and recives data in JSON format) 
  2.   PageMethod: function(fn, paramArray, successFn, errorFn) { 
  3.       var pagePath = window.location.pathname; 
  4.       var that = this
  5.       //Call the page method 
  6.       $.ajax({ 
  7.           type: "POST"
  8.           url: pagePath + "?Callback=" + fn, 
  9.           contentType: "application/json; charset=utf-8"
  10.           data: paramArray, 
  11.           dataType: "json"
  12.           //that is a reference to the object calling this callback method 
  13.           success: function(res) { successFn(res, that) }, 
  14.           error: errorFn 
  15.       }); 
  16.   } 

在服务器端,我们像下面这样去实现:

  1. protected void Page_Load(object sender, EventArgs e) 
  2.     { 
  3.         // *** Route to the Page level callback 'handler' 
  4.         this.HandleCallbacks(); 
  5.     } 
  6.  
  7.     // Callback routing 
  8.     public void HandleCallbacks() 
  9.     { 
  10.         if (string.IsNullOrEmpty(Request.Params["Callback"])) 
  11.             return
  12.  
  13.         // *** We have an action try and match it to a handler 
  14.         switch (Request.Params["Callback"]) 
  15.         { 
  16.             case "fetchAllNews"
  17.                 this.FetchAllNews(); 
  18.                 break
  19.         } 
  20.  
  21.         Response.StatusCode = 500; 
  22.         Response.Write("Invalid Callback Method"); 
  23.         Response.End(); 
  24.     } 
  25.  
  26.     public void FetchAllNews() 
  27.     { 
  28.         List<NewsItem> lsttst = new List<NewsItem>(); 
  29.         lsttst.Add(new NewsItem("Environment of Australia",  
  30.         this.ResolveUrl("~/img/news1.jpg"),  
  31.         this.ResolveUrl("~/img/news1_thumb.jpg"),  
  32.         "Australia has a rich variety of endemic legume  
  33.         species that thrive in nutrient-poor soils because  
  34.         of their symbiosis with rhizobia bacteria and mycorrhizal fungi", 
  35.         DateTime.Now.ToShortDateString())); 
  36.         lsttst.Add(new NewsItem("Economy of Australia",  
  37.         this.ResolveUrl("~/img/news2.jpg"),  
  38.         this.ResolveUrl("~/img/news2_thumb.jpg"),  
  39.         "The Australian dollar is the currency of the  
  40.         Commonwealth of Australia, including Christmas Island,  
  41.         Cocos (Keeling) Islands, and Norfolk Island",  
  42.         DateTime.Now.ToShortDateString())); 
  43.         lsttst.Add(new NewsItem("Demographics of Australia and  
  44.         Immigration to Australia", this.ResolveUrl("~/img/news3.jpg"),  
  45.         this.ResolveUrl("~/img/news3_thumb.jpg"),  
  46.         "Most of the estimated 21.8 million Australians are  
  47.         descended from colonial-era settlers and post-Federation  
  48.         immigrants from Europe", DateTime.Now.ToShortDateString())); 
  49.         lsttst.Add(new NewsItem("Religion in Australia",  
  50.         this.ResolveUrl("~/img/news4.jpg"),  
  51.         this.ResolveUrl("~/img/news4_thumb.jpg"),  
  52.         "Australia has no state religion. In the 2006 census,  
  53.         64% of Australians were listed as Christian of  
  54.         any denomination, including 26% as Roman Catholic and  
  55.         19% as Anglican", DateTime.Now.ToShortDateString())); 
  56.         lsttst.Add(new NewsItem("Education in Australia",  
  57.         this.ResolveUrl("~/img/news5.jpg"),  
  58.         this.ResolveUrl("~/img/news5_thumb.jpg"),  
  59.         "School attendance is compulsory throughout Australia.  
  60.         In most Australian States at 5–6 years of age all children  
  61.         receive 11 years of compulsory education",  
  62.         DateTime.Now.ToShortDateString())); 
  63.  
  64.         Response.ContentType = "application/json; charset=utf-8"
  65.         Response.Write(JavaScriptConvert.SerializeObject(lsttst)); 
  66.         Response.End(); 
  67.     } 

 

 

 

 

 

 

 

 

 

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师