//返回DataSet(XML)
$.ajax({
type: "POST",
url: "/handler/GetCity.ashx",
data: "PID="+id,
dataType: 'text',
beforeSend:function(){
//请稍后 数据获取中....
// alert('before');
}
, //返回的类型为XML
success: function(data) { //成功时执行的方法
//捕获处理过程中的异常并输出
var obj= eval('(' + data + ')'); //格式转换
$.each(obj.Tables, function (index, table) {
//根据不同的表名,显示不同的字段。得到特定表,table = obj.Tables[1]
var tableName = table.Name;
var i = 0;
$.each(table.Rows, function (index, row) {
$('#ccountyList').append(" <li οnclick=\"clickCounty('"+row.Name+"','"+row.ID+"')\">"+row.Name+"</li> ");
});
});
},
complete:function(){
//数据获取完成
//alert('complete');
}
,
error: function(result, status) { //出错时会执行这里的回调函数
if (status == 'error')
{
alert(status);
}
}
});
using System;
using System.Web;
using MemberSessionMessage;
using UserMessage;
using System.Web.SessionState;
using System.Data;
using System.Text;
using Area;
public class GetCity : BasePage, IHttpHandler, IRequiresSessionState
{
RArea RCJ = new RArea();
TArea TCJ = new TArea();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string ID = context.Request["PID"].ToString();
context.Response.Write(this.GetDataSet(ID));
}
public bool IsReusable
{
get
{
return false;
}
}
private String GetDataSet(string CityID)
{
DataSet ds = new DataSet();
try
{
int ID = int.Parse(CityID);
ds = RCJ.GetDataWebDataset(ID);
}
catch (Exception e)
{
ds = null;
}
return Dataset2Json(ds);
}
/// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string DataTable2Json(System.Data.DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"Name\":\"" + dt.TableName + "\",\"Rows");
jsonBuilder.Append("\":[");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString().Replace("\"", "\\\"")); //对于特殊字符,还应该进行特别的处理。
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
/// <summary>
/// DataSet转换成Json格式
/// </summary>
/// <param name="ds">DataSet</param>
/// <returns></returns>
public static string Dataset2Json(System.Data.DataSet ds)
{
StringBuilder json = new StringBuilder();
json.Append("{\"Tables\":");
json.Append("[");
foreach (System.Data.DataTable dt in ds.Tables)
{
json.Append(DataTable2Json(dt));
json.Append(",");
}
json.Remove(json.Length - 1, 1);
json.Append("]");
json.Append("}");
return json.ToString();
}
}