代码改变世界

操作Jquery Ajax 返回的Dataset

  Evan.Pei  阅读(1944)  评论(2编辑  收藏  举报

0.后台代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/// <summary>
/// 将DataSet转化成JSON数据
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public static string DataSetToJson(DataSet ds)
{
    string json = string.Empty;
    try
    {
        if (ds.Tables.Count == 0)
            throw new Exception("DataSet中Tables为0");
        json = "{";
        for (int i = 0; i < ds.Tables.Count; i++)
        {
            json += "Table" + (i + 1) + ":[";
            for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
            {
                json += "{";
                for (int k = 0; k < ds.Tables[i].Columns.Count; k++)
                {
                    json += ds.Tables[i].Columns[k].ColumnName + ":'" + ds.Tables[i].Rows[j][k].ToString() + "'";
                    if (k != ds.Tables[i].Columns.Count - 1)
                        json += ",";
                }
                json += "}";
                if (j != ds.Tables[i].Rows.Count - 1)
                    json += ",";
            }
            json += "]";
            if (i != ds.Tables.Count - 1)
                json += ",";
        }
        json += "}";
    }
    catch (Exception ex)
    {throw new Exception(ex.Message);}
    return json;
}

 

1.Jquery Ajax

using System.Web.Services;

[WebMethod]
public static string getData2(){...}

1
2
3
4
5
6
7
8
9
10
11
12
13
$("#btn_jquery_Ajax").bind("click", function() {
            $.ajax({
                url: "newPerDayImportInventQuery.aspx/getData2", //要访问的方法名
                data: m, //参数,json格式
                contentType: "application/json; charset=utf-8", //简体中文
                type: "Post", //提交方式
                dataType: "json", //返回的类型
                success: jqajaxok,
                error: function(result) {
                    alert("失败");
                } //失败回调函数
            });
        });

 2.操作Dataset

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function jqajaxok(result) {
       var obj = eval("(" + result.d + ")");
       var keys = getKeys(obj.Table2[0]);
       var TableO = document.createElement('table');
       TableO.border = "1px";
       var thTitle = createTableTitle(keys);
       TableO.appendChild(thTitle);
       for (var i = 0; i < obj.Table2.length; i++) {
           var trO = document.createElement('tr');
           for (var y = 0; y < keys.length; y++) {
               var tdO = document.createElement('td');
               tdO.innerHTML = obj.Table2[i][keys[y]];
               trO.appendChild(tdO);
           }
           TableO.appendChild(trO);
       }
       document.getElementById("form1").appendChild(TableO);
   }
 
   //创建表头
   function createTableTitle(keys) {
       var trO = document.createElement('tr');
       for (var y = 0; y < keys.length; y++) {
           var thO = document.createElement('th');
           thO.innerHTML = keys[y];
           trO.appendChild(thO);
       }
       return trO;
   }
 
   //获取键的个数
   function getKeys(arr) {
       var key, keys = [];
       for (key in arr) {
           keys.push(key);
       }
       return keys;
   };

 

1
<br>    <br>
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示