博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ajax调用后台Datatable
阅读量:6101 次
发布时间:2019-06-20

本文共 1815 字,大约阅读时间需要 6 分钟。

之前遇到的问题,用AjaxPro方式没有实现,后来使用的Jquery .ajax方法调用后台的WebMethod返回的DataTable来实现的。有园友问关于将DataTable转换成JSON格式的疑问,我就简单的写个例子,描述实现过程。


1,新建页面TestAjax2.aspx;

<body>

    <form id="form1" runat="server">
    <input id="btnJson" type="button" value="JSON" />
   <div class="case_input1" id="article">
            <ul>
            </ul>
           
        </div>
    </form>
</body>

 

2.添加引用System.Web.Extension.

   添加命名空间

using System.Web.Services;

using System.Collections;
using System.Web.Script.Serialization;

3. 在.cs文件中构建WebMethod方法,返回DataTable类型。

[WebMethod]

public static string getDataTable(string cid, string site)
{
     DataSet  ds = new UserCase().GetResult(cid, site, string.Empty);
     string s = DTtoJSON(ds.Tables[0]);
     return s.ToString();
}

 

4.添加方法,将DataTable转换为JSON。

public static string DTtoJSON(DataTable dt)

   {
       JavaScriptSerializer jss = new JavaScriptSerializer();
       ArrayList dic = new ArrayList();
       foreach (DataRow row in dt.Rows)
       {
           Dictionary<string, object> drow = new Dictionary<string, object>();
           foreach (DataColumn col in dt.Columns)
           {
               drow.Add(col.ColumnName, row[col.ColumnName]);
           }
           dic.Add(drow);
       }
       return jss.Serialize(dic);
   }

5.aspx页面中用JQUERY进行AJAX调用。

<script type="text/javascript" src="jquery-1.6.2.js"></script>

<script language="javascript" type="text/javascript">
        $(function () {
            $("#btnJson").click(function () {
                $.ajax({
                    type: "Post",
                    url: "TestAjax2.aspx/getRelatedArticle", //url页面/方法名
                    data: "{'cid':'C0503','site':'TP'}",            //参数 {key/value}
                    contentType: "application/json;charset=utf-8", 
                    dataType: "json",
                    success: function (data) {
                             data = jQuery.parseJSON(data.d);
                            $.each(data, function (i, item) {
                              $("#article ul").append('<li><a href="' + item.Href + '" target=_blank>' + item.Title+ '</a></li>')
                            })
                        
                    },
                    error: function (error) {
                        alert(error);
                    }
                });
            })
        })
    </script

    本文转自 陈敬(Cathy) 博客园博客,原文链接:

http://www.cnblogs.com/janes/archive/2011/08/24/2152380.html

,如需转载请自行联系原作者

你可能感兴趣的文章
The Viewport and the Window
查看>>
自定义SpringMVC拦截器中HandlerMethod类型转换问题调研
查看>>
PostMessage And SendMessage
查看>>
Redis特性和应用场景
查看>>
SUSE 11 关闭防火墙
查看>>
spring security 3 动态获取权限
查看>>
路由器和交换机的区别
查看>>
我的友情链接
查看>>
×××之GRE隧道协议案例配置
查看>>
Eclipse操作总结
查看>>
Ubuntu 16只能以客人会话身份登录问题的解决
查看>>
Docker创建gogs
查看>>
fw: 数组指针和指针数组的区别
查看>>
无处不抽象,从JVM内存管理想到的
查看>>
Hbase介绍(32)
查看>>
<Java> 为什么接口中没有静态方法
查看>>
Android4: 动态切换界面风格
查看>>
使用AjaxFileUploader上传图片
查看>>
20、Eternal框架-工程项目管理系统-自定义工作流
查看>>
BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3)
查看>>