操作Jquery Ajax 返回的Dataset
0.后台代码
/// <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(){...}
$("#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
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; };