当前位置: 代码迷 >> JavaScript >> jquery $.getJSON 与.NET 组合用法推荐
  详细解决方案

jquery $.getJSON 与.NET 组合用法推荐

热度:709   发布时间:2012-10-31 14:37:32.0
jquery $.getJSON 与.NET 结合用法推荐

废话不多说,给出文件先:

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;
????}
}

?

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>
?
?
<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

  相关解决方案