借牛人代码一用 , 加载数据: 结合Jquery插件获取Json数据----------jTemplates

<% @ Page Language = " C# "  AutoEventWireup = " true "  Codebehind = " Default.aspx.cs "  Inherits = " JsonDemo._Default "   %>

<! 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 runat = " server " >
    
< title > Demo </ title >
</ head >
< body >
    
< form id = " form1 "  runat = " server " >
        
< div id = " ClickBox " >
            
< input id = " ClickMeToo "  type = " button "  value = " Click Me! "   />
        
</ div >
        
< ul id = " InfoBox " >
        
</ ul >
    
</ form >
    
<%-- 模板内容即HTML用什么规则生成。要用到模板的地方一般都是循环的 --%>
    
< textarea id = " ItemTemplate "  style = " display: none; " >
        {#
foreach  $T.table  as  record}
            
< li >< a title = " id={$T.record.ID} "  href = " {$T.record.ID} " > {$T.record.Title} </ a ></ li >
        {#
/ for }
    
</ textarea >
</ body >
</ html >

< script type = " text/javascript "  src = " JS/jquery-1.3.2.min.js " >   </ script >

<%-- 模板 --%>
< script src = " JS/jTemplate.js "  type = " text/javascript " ></ script >

< script type = " text/javascript " >
        $(function(){
            $(
' input#ClickMeToo ' ).click(function(){
                $(
' #InfoBox ' ).html( ' <li>Loading</li> ' );
                 fnLoadJsonHTML();
            }); 
// click
            
        });
       function fnLoadJsonHTML(){
            $.ajax({
                async: 
true //  默认true(异步请求)
                cache:  false //  默认true,设置为 false 将不会从浏览器缓存中加载请求信息。----------这个地方必须设置为fasle,否则在IE下会因为缓存的关系读取脏数据。实现不缓存的方法就是它自己给URL加了个随机参数
                type:  " GET " //  默认:GET 请求方式:[POST/GET]
                dataType:  " json " // 默认["xml"/"html"] 返回数据类型:["xml" / "html" / "script" / "json" / "jsonp"]
                url:  " Data/SampleData.ashx " //  默认当前地址,发送请求的地址
                data: { t: ' json '  },  //  请求的参数
                error: function() { 
                    alert(
" There is an Error. " );
                }, 
                timeout: 
20000 , // 超时时间
                success: function(data) {  //  请求成功后回调函数 参数:服务器返回数据,数据格式.
                
                    
if ( ! data.Error  ){ // 这个地方要判断data是否正确                    
                        
// 相当于data = [{ID:10,Title:'第1个标题'},{ID:20,Title:'第2个标题'},{ID:30,Title:'第3个标题'},{ID:40,Title:'第4个标题'},{ID:50,Title:'第5个标题'},{ID:60,Title:'第6个标题'},{ID:70,Title:'第7个标题'},{ID:80,Title:'第8个标题'},{ID:90,Title:'第9个标题'},{ID:100,Title:'第10个标题'}]; 
                        
//  $("#InfoBox") 表示要被插入InnerHTML的元素
                        
//  ItemTemplate 表示包含模板InnerHTML的元素的ID
                        
// setTemplateElement函数:将模板设置给对象
                        $( " #InfoBox " ).setTemplateElement( " ItemTemplate " );
                        
                        
// 往模板里发送数据,数据解析在模板里
                       
// 如果要分页,就把data这个数组截取要当前页显示的部分传入即可(data需要用全局变量保存)
                        $( " #InfoBox " ).processTemplate(data.solidDate);
                   }
else {
                        alert(data.ErrorMsg);
                   }
                }
            })
       }
</ script >



using  System;
using  System.Data;
using  System.Web;
using  System.Collections;
using  System.Web.Services;
using  System.Web.Services.Protocols;
using  Newtonsoft.Json;

namespace  JsonDemo.Data
{
    
/// <summary>
    
/// Summary description for $codebehindclassname$
    
/// </summary>

    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
    
public class SampleData : IHttpHandler
    
{

        
public void ProcessRequest(HttpContext context)
        
{
            
//设置输出格式
            context.Response.ContentType = "text/json";
            context.Response.Charset 
= "utf-8";

            context.Response.Write(GetToJsonData());
            context.Response.End();
        }

        
private string GetSolidData()
        
{
            
//JSON格式的数据。
            return "{solidDate:[{ID:10,Title:'第1个标题'},{ID:20,Title:'第2个标题'},{ID:30,Title:'第3个标题'},{ID:40,Title:'第4个标题'},{ID:50,Title:'第5个标题'},{ID:60,Title:'第6个标题'},{ID:70,Title:'第7个标题'},{ID:80,Title:'第8个标题'},{ID:90,Title:'第9个标题'},{ID:100,Title:'第10个标题'}],Error:false,ErrorMsg:null}";
        }


        
public bool IsReusable
        
{
            
get
            
{
                
return false;
            }

        }

    }

}

你可能感兴趣的:(jquery插件)