废话不多说,给出文件先:
Handler.ashx
代码
<%
@?WebHandler?Language
=
"
C#
"
?Class
=
"
Handler
"
?
%>
using ?System;
using ?System.Web;
using ?System.Data;
using ?System.Text;
public ? class ?Handler?:?IHttpHandler?{
????
???? public ? void ?ProcessRequest?(HttpContext?context)?{
???????? /* context.Response.ContentType?=?"text/plain";
????????string?data?=?"[{name:\"fan\",age:26},{name:\"wang\",age:25}]";//构建的json数据
????????context.Response.Write(data); */
????????DataSet?ds? = ? new ?DataSet();
????????DataTable?dt? = ? new ?DataTable();
????????dt.Columns.Add( " name " ,? typeof ( string ));
????????dt.Columns.Add( " year " ,? typeof ( string ));
????????dt.Columns.Add( " avg " ,? typeof ( string ));
????????DataRow?tr? = ?dt.NewRow();
????????tr[ " name " ]? = ? " 张三 " ;
????????tr[ " year " ]? = ? " 2005-02-02 " ;
????????tr[ " avg " ]? = ? " 男 " ;
????????dt.Rows.Add(tr);
???????? // ds.Tables.Add(dt);
????????DataRow?tr2? = ?dt.NewRow();
????????tr2[ " name " ]? = ? "李四 " ;
????????tr2[ " year " ]? = ? " 2007-02-02 " ;
????????tr2[ " avg " ]? = ? " 女 " ;
????????dt.Rows.Add(tr2);
????????ds.Tables.Add(dt);
????????context.Response.Clear();
????????context.Response.ContentEncoding? = ?Encoding.UTF8;
????????context.Response.ContentType? = ? " application/json " ;
???????? // Response.Write("{\"success\":true,\"name\":\"张三\",\"year\":\"2009-12-12\"}");
????????context.Response.Write(getJSON(ds));
????????context.Response.Flush();
????????context.Response.End();
????}
?
???? public ? bool ?IsReusable?{
???????? get ?{
???????????? return ? false ;
????????}
????}
???? private ? static ? string ?getJSON(DataSet?ds) // 这里调用了JSON帮助文件,jsonHelp.cs?就不放出源码了
????{
????????Json.JSONHelper?jsonHelp? = ? new ?Json.JSONHelper();
????????jsonHelp.success? = ? true ;
???????? // jsonHelp.totlalCount?=?getPrjListCount();
????????jsonHelp.totlalCount? = ?ds.Tables[ 0 ].Rows.Count;
???????? foreach ?(DataRow?dr? in ?ds.Tables[ 0 ].Rows)
????????{
????????????jsonHelp.AddItem( " name " ,?dr[ " name " ].ToString());
????????????jsonHelp.AddItem( " avg " ,?dr[ " avg " ].ToString());
???????????? if ?(dr[ " year " ]? != ?DBNull.Value)
????????????{
????????????????jsonHelp.AddItem( " year " ,?Convert.ToDateTime(dr[ " year " ]).ToString( " yyyy/MM/dd " ));
????????????}
???????????? else
????????????{
????????????????jsonHelp.AddItem( " year " ,? string .Empty);
????????????}
????????????jsonHelp.ItemOk();
????????}
???????? string ?strResult? = ?jsonHelp.ToString();
???????? return ?strResult;
????}
}
using ?System;
using ?System.Web;
using ?System.Data;
using ?System.Text;
public ? class ?Handler?:?IHttpHandler?{
????
???? public ? void ?ProcessRequest?(HttpContext?context)?{
???????? /* context.Response.ContentType?=?"text/plain";
????????string?data?=?"[{name:\"fan\",age:26},{name:\"wang\",age:25}]";//构建的json数据
????????context.Response.Write(data); */
????????DataSet?ds? = ? new ?DataSet();
????????DataTable?dt? = ? new ?DataTable();
????????dt.Columns.Add( " name " ,? typeof ( string ));
????????dt.Columns.Add( " year " ,? typeof ( string ));
????????dt.Columns.Add( " avg " ,? typeof ( string ));
????????DataRow?tr? = ?dt.NewRow();
????????tr[ " name " ]? = ? " 张三 " ;
????????tr[ " year " ]? = ? " 2005-02-02 " ;
????????tr[ " avg " ]? = ? " 男 " ;
????????dt.Rows.Add(tr);
???????? // ds.Tables.Add(dt);
????????DataRow?tr2? = ?dt.NewRow();
????????tr2[ " name " ]? = ? "李四 " ;
????????tr2[ " year " ]? = ? " 2007-02-02 " ;
????????tr2[ " avg " ]? = ? " 女 " ;
????????dt.Rows.Add(tr2);
????????ds.Tables.Add(dt);
????????context.Response.Clear();
????????context.Response.ContentEncoding? = ?Encoding.UTF8;
????????context.Response.ContentType? = ? " application/json " ;
???????? // Response.Write("{\"success\":true,\"name\":\"张三\",\"year\":\"2009-12-12\"}");
????????context.Response.Write(getJSON(ds));
????????context.Response.Flush();
????????context.Response.End();
????}
?
???? public ? bool ?IsReusable?{
???????? get ?{
???????????? return ? false ;
????????}
????}
???? private ? static ? string ?getJSON(DataSet?ds) // 这里调用了JSON帮助文件,jsonHelp.cs?就不放出源码了
????{
????????Json.JSONHelper?jsonHelp? = ? new ?Json.JSONHelper();
????????jsonHelp.success? = ? true ;
???????? // jsonHelp.totlalCount?=?getPrjListCount();
????????jsonHelp.totlalCount? = ?ds.Tables[ 0 ].Rows.Count;
???????? foreach ?(DataRow?dr? in ?ds.Tables[ 0 ].Rows)
????????{
????????????jsonHelp.AddItem( " name " ,?dr[ " name " ].ToString());
????????????jsonHelp.AddItem( " avg " ,?dr[ " avg " ].ToString());
???????????? if ?(dr[ " year " ]? != ?DBNull.Value)
????????????{
????????????????jsonHelp.AddItem( " year " ,?Convert.ToDateTime(dr[ " year " ]).ToString( " yyyy/MM/dd " ));
????????????}
???????????? else
????????????{
????????????????jsonHelp.AddItem( " year " ,? string .Empty);
????????????}
????????????jsonHelp.ItemOk();
????????}
???????? string ?strResult? = ?jsonHelp.ToString();
???????? return ?strResult;
????}
}
?
test.aspx
代码
????
<
script?src
=
"
js/jquery.js
"
?type
=
"
text/javascript
"
?language
=
"
javascript
"
><
/
script>
???? < script?type = " text/javascript " >
????????$( function (){
????????????$.getJSON( " Handler.ashx " , function (json){
????????????$.each(json.data, function (i){$( ' #content ' ).append( " 姓名: " + json.data[i].name + " ----性别: " + json.data[i].avg + " ----时间: " + json.data[i].year + " <br/> " );});
????????????});
????????});
???? < / script>
???? < script?type = " text/javascript " >
????????$( function (){
????????????$.getJSON( " Handler.ashx " , function (json){
????????????$.each(json.data, function (i){$( ' #content ' ).append( " 姓名: " + json.data[i].name + " ----性别: " + json.data[i].avg + " ----时间: " + json.data[i].year + " <br/> " );});
????????????});
????????});
???? < / script>
?
?
<body>
??? <form id="form1" runat="server">
??? <div id="content"></div>
??? </form>
</body>
??? <form id="form1" runat="server">
??? <div id="content"></div>
??? </form>
</body>
?
把Handler.ashx文件内容放入普通aspx文件page_load方法中同样适用
即$.getJSON("ssss.aspx"function(e){});
http://www.cnblogs.com/shshshdy/archive/2010/05/18/1737921.html