• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用jQuery和Asp.netAjax创建客户端的Repeater

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

该篇文章是Encosia博客中的文章,个人觉得不错就翻译了一下。但由于个人英语水平有限,还望各位海量。如果想看原文,请点击Use jQuery and ASP.NET AJAX to build a client side Repeater查看原文。

近一段时间在Matt Berseth的博客上有一些非常有意思的关于在客户端创建和显示markup(这个单词不知道什么意思)方法的讨论。虽然我以前没有写过任何关于这方面的例子,但是在客户端是使用markup是我经常用而其推荐使用的。

通过发送合适的数据到客户端,你能够尽量的缩小你要发送的数据和大幅度增长的表现形式。你也可以使自己很容易的添加一些轻量级的客户端的排序和分页。这些不仅能够提升用户的体验,而且也能够降低服务器的负荷和带宽要求。

为了实现这一目标,我会通过四步有效的步骤带你完成一个使用Asp.Net和jQuery技术的客户端Repeater。

1、创建一个Rss读取页面方法并返回JSON格式的数据到客户端;

2、使用jQuery获取页面方法;

3、使用返回给页面的数据在客户端构建一个Table表;

4、使用模板插件进行改进;

一、创建一个Rss读取页面方法

 因为Web浏览器禁止跨域名服务,通过Ajax功能显示一个外部的Rss中的条目是一个非常意义的例子。为了克服这些限制,我们要做的第一步是写一个接收Rss数据到客户端的本地(local)代理服务。

Web Service和页面方法都可以实现这项任务。我倒愿意使用Web Service,但这里我们使用页面方法。通过阐述两者有着多么的相似性是非常有帮助的。 

    }

 

这个页面方法使用LINQ解析一些从Rss中得到的数据,并使用这些数据产生一个匿名的类型,然后返回一个匿名类型的集合。通过在服务器端选择我们感兴趣的合适的数据,我们能将在服务器端和客户端传送的数据实现最小化。

二、使用jQuery调用页面方法

在客户端,我们要用的首要事情是向页面方法发送一个请求。我们会通过使用jQuery 的Ajax()方法实现: 

});

 

当页面加载时,这个函数会向我们的页面执行一个Ajax请求,请求头7个Rss的条目信息。当响应到达时,一个Javascript函数被调用来响应这些数据。

三、创建和显示表格

上面提到的通过LINQ传递出来的匿名类型的是非常完美的。我在页面设计重要用的属性在页面方法中都变成了联合数组中的键,这样使我们很容易使用这些数据。

为了在客户端用这些数据创建表,我们通过循环每个元素,构造HTML字符,然后将生成的HTML字符指派到命名为container的<div>标签中。 

}

 

如果你觉得这些代码看上去丑是因为页面表达和逻辑没有分开。尽管这些都是在客户端的,代码分离仍然是非常重要的谨记的目标。

为了达到分离,我们最需要的是使用模板解决。当这个问题被提出时,有一个非常棒的叫jTemplates的jQuery插件,可以实现这个功能。

我们创建一个非常简单的HTML模板来使用jTemplates插件。 

 


  <thead>
    
<tr>
      
<th>Date</th>
      
<th>Title</th>
      
<th>Excerpt</th>
    
</tr>
  
</thead>
  
<tbody>
    {#foreach $T.d as post}
    
<tr>
      
<td>{$T.post.Date}</td>
      
<td><href="{$T.post.Link}">{$T.post.Title}</a></td>
      
<td>{$T.post.Description}</td>
    
</tr>
    {#/for}
  
</tbody>
</table>

在HTML模板创建好后,我们使用一对jTemplates的方法应用模板并将结果返回给container标签中。 

 ApplyTemplate(msg) 
{
  $('#Container').setTemplateURL('RSSTable.tpl',null, { filter_data: false});
  $(
'#Container').processTemplate(msg);
}

返回的结果我上文中用手工方法实现的是一样的,但代码非常干净。在这种情况下,我认为这种方法可以类似的称为客户端的Repeater。

 

说明:1、本人在翻译该文章时,省去了部分的句子,而且很多句子因为英语水平有限翻译的很差。

        2、该篇文章的例子已经调试通过,但在原文中的手工生成Table的js代码有一点错误,已经改正。

        3、在转载文章时注明 Nimeux's Blog

        4、下载源代码


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET通过Global.asax和Timer定时器定时调用WebService运行后台代码 ...发布时间:2022-07-10
下一篇:
Asp.NetForums之邮件发送发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap