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