第1个回答 2013-07-11
后台不可能直接输出dataset吧?可以通过写一个json输出类,将dataset或者datatable转成json格式输出。
首先看下asp.net的文件CustomerEdit_sale.aspx后台代码:
Code [
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string action = Utils.Request("action");
if (action == "getcustomerbasic") //ajax请求客户基本信息
{
this.customerBasic(Utils.Request("wd"));
Utils.End();
}
}
} //输出json
private void customerBasic(string strCustID)
{
Response.ContentType = "text/plain";
string strJson = string.Empty;
TelSales telSale = new TelSales();
DataSet dsCust = telSale.QueryCustomers("customer_id=" strCustID);
strJson = Utils.DataTableToJson("info", dsCust.Tables[0]); Response.Write(strJson);
}以上代码asp.net把datatable转为json的代码在这篇文章的DataTableToJson方法: //DataTable转成Json
public static string DataTableToJson(string jsonName, DataTable dt)
{
StringBuilder Json = new StringBuilder();
Json.Append("{\"" + jsonName + "\":[");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
Json.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");
if (j < dt.Columns.Count - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < dt.Rows.Count - 1)
{
Json.Append(",");
}
}
}
Json.Append("]}");
return Json.ToString();
} //List转成json
public static string ObjectToJson<T>(string jsonName, IList<T> IL)
{
StringBuilder Json = new StringBuilder();
Json.Append("{\"" + jsonName + "\":[");
if (IL.Count > 0)
{
for (int i = 0; i < IL.Count; i++)
{
T obj = Activator.CreateInstance<T>();
Type type = obj.GetType();
PropertyInfo[] pis = type.GetProperties();
Json.Append("{");
for (int j = 0; j < pis.Length; j++)
{
Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\"");
if (j < pis.Length - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < IL.Count - 1)
{
Json.Append(",");
}
}
}
Json.Append("]}");
return Json.ToString();
}
第2个回答 推荐于2018-04-05
前台第一个TestServlet为你要跳转的servlet或action,第二个你要传的参数,第三个你后台返回的值,加入值是一个json类型,就用$.each来遍历$.post("TestServlet",{ name: "John", time: "2pm" },function(data){
$.each(data,function(index,elent){
alert( eval(elent));
});
});本回答被网友采纳