`
KissAngle
  • 浏览: 8720 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

基于jQuery的AJAX和JSON实现纯html数据模板 .

阅读更多

通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的数据,然后通过jQuer把数据绑定到事先设计好的html模板上,直接在页面上显示。
 
 
我们先来看一下html模板:
 
 
            <table id="datas" border="1" cellspacing="0" style="border-collapse: collapse">
                
<tr>
                    
<th>
                        订单ID
</th>
                    
<th>
                        客户ID
</th>
                    
<th>
                        雇员ID
</th>
                    
<th>
                        订购日期
</th>
                    
<th>
                        发货日期
</th>
                    
<th>
                        货主名称
</th>
                    
<th>
                        货主地址
</th>
                    
<th>
                        货主城市
</th>
                    
<th>
                        更多信息
</th>
                
</tr>
                
<tr id="template">
                    
<td id="OrderID">
                    
</td>
                    
<td id="CustomerID">
                    
</td>
                    
<td id="EmployeeID">
                    
</td>
                    
<td id="OrderDate">
                    
</td>
                    
<td id="ShippedDate">
                    
</td>
                    
<td id="ShippedName">
                    
</td>
                    
<td id="ShippedAddress">
                    
</td>
                    
<td id="ShippedCity">
                    
</td>
                    
<td id="more">
                    
</td>
                
</tr>
            
</table>
  
 
        一定要注意的就是里面所有的id属性,这个是一个关键。再来看一下AJAX请求和绑定数据的代码。
 
 
        $.ajax(...{
            type: 
"get",//使用get方法访问后台
            dataType: "json",//返回json格式的数据
            url: "BackHandler.ashx",//要访问的后台地址
            data: "pageIndex=" + pageIndex,//要发送的数据
            complete :function()...{$("#load").hide();},//AJAX请求完成时隐藏loading提示
            success: function(msg)...{//msg为返回的数据,在这里做数据绑定
                var data = msg.table;
                $.each(data, 
function(i, n)...{
                    
var row = $("#template").clone();
                    row.find(
"#OrderID").text(n.订单ID);
                    row.find(
"#CustomerID").text(n.客户ID);
                    row.find(
"#EmployeeID").text(n.雇员ID);
                    row.find(
"#OrderDate").text(ChangeDate(n.订购日期));
                    
if(n.发货日期!== undefined) row.find("#ShippedDate").text(ChangeDate(n.发货日期));
                    row.find(
"#ShippedName").text(n.货主名称);
                    row.find(
"#ShippedAddress").text(n.货主地址);
                    row.find(
"#ShippedCity").text(n.货主城市);
                    row.find(
"#more").html("<a href=OrderInfo.aspx?id=" + n.订单ID + "&pageindex="+pageIndex+">&nbsp;More</a>");                    
                    row.attr(
"id","ready");//改变绑定好数据的行的id
                    row.appendTo("#datas");//添加到模板的容器中
                }
);
 
        这个是jQuery的AJAX方法,返回数据并不复杂,主要说明一下怎么把数据按模板的定义显示到到页面上。首先是这个“var row = $("#template").clone();”先把模板复制一份,接下来row.find("#OrderID").text(n.订单ID);,表示找到id=OrderID的标记,设置它的innerText为相应的数据,当然也可以设置为html格式的数据。或者是通过外部的函数把数据转换成需要的格式,比如这里row.find("#OrderDate").text(ChangeDate(n.订购日期));有点服务器控件做模板绑定数据的感觉。
       
        所有的这些,都是放在一个静态的页面里,只通过AJAX方法从后台获取数据,所有html代码如下:
 
 
<!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>
    
<title>test1</title>

    
<script language="javascript" type="text/javascript" src="js/jquery-latest.pack.js"></script>

    
<script language="javascript" type="text/javascript" src="js/PageDate.js"></script>

</head>
<body>
    
<div>
        
&nbsp;<div>
            
<br />
            
<input id="first" type="button" value="  <<  " /><input id="previous" type="button"
                value
="  <  " /><input id="next" type="button" value="  >  " /><input id="last" type="button"
                    value
="  >>  " />
            
&nbsp;<span id="pageinfo"></span>
            
<table id="datas" border="1" cellspacing="0" style="border-collapse: collapse">
                
<tr>
                    
<th>
                        订单ID
</th>
                    
<th>
                        客户ID
</th>
                    
<th>
                        雇员ID
</th>
                    
<th>
                        订购日期
</th>
                    
<th>
                        发货日期
</th>
                    
<th>
                        货主名称
</th>
                    
<th>
                        货主地址
</th>
                    
<th>
                        货主城市
</th>
                    
<th>
                        更多信息
</th>
                
</tr>
                
<tr id="template">
                    
<td id="OrderID">
                    
</td>
                    
<td id="CustomerID">
                    
</td>
                    
<td id="EmployeeID">
                    
</td>
                    
<td id="OrderDate">
                    
</td>
                    
<td id="ShippedDate">
                    
</td>
                    
<td id="ShippedName">
                    
</td>
                    
<td id="ShippedAddress">
                    
</td>
                    
<td id="ShippedCity">
                    
</td>
                    
<td id="more">
                    
</td>
                
</tr>
            
</table>
        
</div>
        
<div id="load" style="left: 0px; position: absolute; top: 0px; background-color: red">
            LOADING....
        
</div>
        
<input type="hidden" id="pagecount" />
    
</div>
</body>
</html>
 
    PageData.js就是包括上面AJAX请求和绑定数据代码的js,整个页面连form都不用,这样做有什么好处呢。再看下面一个模板
 
 
            <ul id="datas">
                
<li id="template">
                    
<span id="OrderID">
                        fsdfasdf
                    
</span>
                    
<span id="CustomerID">
                    
</span>
                    
<span id="EmployeeID">
                    
</span>
                    
<span id="OrderDate">
                    
</span>
                    
<span id="ShippedDate">
                    
</span>
                    
<span id="ShippedName">
                    
</span>
                    
<span id="ShippedAddress">
                    
</span>
                    
<span id="ShippedCity">
                    
</span>
                    
<span id="more">
                    
</span>
                
</li>
            
</ul>
 
 
 
 
    还是要注意id属性。大家看到这里应该明白了,不管用什么样的表现形式,只要id属性相同,就可以把数据绑定到对应的位置。这样的话,我们这些做程序的就不会因为美工的修改而修改代码了,而且美工也只要做出html就可以了,不需要为服务器控件做模板(不过我还没遇到过这样的美工,都是美工设计好了我来改成服务器控件的模板)。
 
 
 
    再简单说一下AJAX请求的后台,用的是Access的Northwind数据库,把订单表放到DataTable里,然后通过DataTable2JSON(http://blog.csdn.net/luq885/archive/2007/06/05/1639853.aspx)转化成JSON数据格式传回来就完了,不过后台用了一些分页和缓存的方法,希望对初学者有一些帮助。
 
 
 
    全部例子到http://www1.51ok.com/down.do?7A5EFE8D0FD43CDF61D8980635F8708A下载,其中test.htm是用table模板实现的,test2.htm是用ul模板实现的。效果如下:
 
test.htm
 
test2.htm
分享到:
评论

相关推荐

    基于jQuery的AJAX和JSON实现纯html数据模板

    在当前的Web开发过程中,使用jQuery进行AJAX调用和处理JSON数据已经成为一种常见的技术实践。本文主要介绍如何利用jQuery内置的AJAX功能,获取JSON格式数据,并将其展示在预先设计好的HTML数据模板中。 首先,为了...

    jQuery实现的纯HTML模板进行ajax数据绑定

    标题中的“jQuery实现的纯HTML模板进行ajax数据绑定”指的是使用jQuery库来处理HTML模板,并通过AJAX技术动态地从服务器获取JSON数据,然后将这些数据绑定到模板中,实现页面内容的动态更新,无需刷新整个页面。...

    基于jQuery的AJAX和JSON的实例.doc

    ### 基于jQuery的AJAX与JSON技术详解 #### 一、引言 随着Web技术的发展,用户体验的要求越来越高,而传统的网页加载方式已经不能满足快速响应的需求。为了解决这一问题,AJAX(Asynchronous JavaScript and XML)...

    网页模板——jQuery查看json格式数据插件viewer.js.zip

    网页模板中的jQuery查看JSON格式数据插件`viewer.js`是一个非常实用的工具,它使得开发者和用户能够在浏览器中直观地查看和理解JSON数据结构。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛...

    jquery json 搜索与分页效果代码.rar

    总结来说,"jquery json 搜索与分页效果代码"这个压缩包可能包含了一个示例项目,演示了如何利用jQuery处理前端搜索和分页,同时通过Ajax与后端交互,处理JSON数据。这个例子对于学习和实践Web前端开发中的数据检索...

    基于jQuery的AJAX和JSON的实例.docx

    在本文档中,我们将深入探讨如何使用jQuery进行AJAX与...通过AJAX,我们可以实现动态加载和更新内容,而JSON则提供了一种高效的数据交换方式。这样的技术组合在Web开发中广泛应用,尤其是构建富交互性的用户界面时。

    调用json获取表格动态数据代码.zip

    总结起来,这个项目提供了一个完整的示例,展示了如何在Web应用中使用JavaScript和JSON数据来创建动态表格,并实现一系列交互功能。这对于学习和理解Web前端开发,特别是数据绑定、DOM操作和前后端交互是非常有帮助...

    jQuery实现的纯HTML模板进行ajax数据绑定-m.

    此外,jQuery还提供了`.load()`和`.get()`方法,它们是`.ajax()`的简化版本,适用于快速实现数据加载。例如,`.get()`可以这样使用: ```javascript $.get('http://example.com/api/data', function(data) { // ...

    jquery与json和ajax的结合

    ### jQuery与JSON及AJAX的结合应用 ...开发者可以利用jQuery强大的选择器和DOM操作能力,方便地实现数据绑定,同时通过AJAX技术实现无刷新页面的数据更新。这对于现代Web应用而言是非常有价值的。

    jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例

    主要介绍了jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作,结合实例形式分析了jQuery+Ajax请求json格式数据并渲染到html页面相关步骤与操作技巧,需要的朋友可以参考下

    Struts2+Jquery+ajax+Json代码案例

    Struts2、jQuery、Ajax 和 JSON 是Web开发中常见的技术栈,它们共同作用于构建动态、交互式的Web应用程序。在“Struts2 Jquery ajax Json实现的一个完整案例”中,这些技术结合使用,以提高用户体验并优化服务器通信...

    ajax(jquery+json)实现前端无刷新分类管理源码

    **Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新...总之,这个源码提供了一个很好的学习和参考实例,展示了如何结合Ajax、jQuery和JSON实现前端无刷新的分类管理,对于提升前端开发技能非常有帮助。

    jQuery实现json表格数据自动分页插件功能.zip

    本资源"jQuery实现json表格数据自动分页插件功能.zip"提供了一个解决方案,用于在网页中展示JSON格式的数据,并通过jQuery实现自动分页功能,以提高用户体验并优化网页性能。 首先,理解JSON(JavaScript Object ...

    Struts2+jQuery(不用JSON)实现局部刷新

    - **Struts2的JSON插件**:虽然题目要求不使用JSON,但通常情况下,Struts2通过JSON插件返回数据给jQuery是最方便的方式。不过,我们可以通过设置Content-Type为"text/plain"或"text/html",让Struts2返回非JSON...

    有ajax,jquery实现tab效果

    在`tab+ajax`的压缩包文件中,可能包含了一个示例代码或者模板,用于演示如何使用Ajax和jQuery实现Tab效果。解压后,你可以查看其中的HTML、CSS和JavaScript文件,学习并理解其工作原理。此外,可能还包含了详细的...

    ssh整合+JSON+Jquery+Ajax

    4. **数据持久化**:Hibernate负责将Java对象与数据库中的记录对应,实现数据的CRUD(创建、读取、更新、删除)操作。 5. **数据传输**:使用JSON格式在前后端之间传递数据,提高传输效率和解析速度。 6. **视图层...

    基于Python Django框架的jQuery AJAX交互源码实现

    项目概述:本项目是基于Python中流行的Django框架,结合jQuery AJAX技术实现的前后端交互应用。通过使用POST和GET请求,实现了数据的异步处理。项目主要采用Python语言编写,同时包含了JavaScript、HTML、Shell、CSS...

    struts2+json+ajax+jquery

    总结来说,Struts2提供了后台处理和视图控制,JSON负责数据传输,Ajax实现了无刷新交互,而jQuery简化了这一过程。这种组合在Web开发中极其常见,是构建动态、高效Web应用的重要工具。理解并熟练掌握这四者之间的...

    基于JQuery实现数据展示方面基本特效

    总结来说,基于jQuery实现数据展示的基本特效涵盖了DOM操作、动画效果、Ajax数据交互、事件处理和第三方插件的使用。结合SpringMVC,可以构建出响应式、动态且互动性强的数据展示界面。通过学习和掌握这些知识点,...

Global site tag (gtag.js) - Google Analytics