本文实例讲述了jquery+json实现数据二级联动的方法。分享给大家供大家参考,具体如下:
function GetCityInfo1()
{
$("#ddlCITY1").empty();
//$("#ddlCOUNTY").empty();
var strId = $("#ddlPROVINCE1").attr("value");
$('#HiddenPro').val(strId);
$.get("../ashx/GetCityInfo.ashx",{ProID:strId,date:new Date().getTime(),proType:"getCity"},function(result)
{
$("#ddlCITY1").append($("").val("0").html("--请选择城市--"));
var datas=eval(result);
for(var j in datas)
{
$("#ddlCITY1").append($("").val(datas[j].ccode).html(datas[j].cityname));
}
//获取区的信息
//GetCountryInfo();
});
}
后台代码:
if (context.Request.QueryString["ProID"] != null && context.Request.QueryString["proType"] != null)
{
string pcode = Convert.ToString(context.Request.QueryString.GetValues("ProID")[0]);
string strSQL = "select cityname,ccode from CD_CityInfo where pcode='" + pcode + "' ";
//执行T-SQL语句 返回DataTable
DataTable dt = Snell.SnCode.DataBase.SQLServerHelper.Query(strSQL).Tables[0];
StringBuilder sb = new StringBuilder();
sb.Append(CreateJsonParameters(dt));
//根据省份编号获取信息 获取信息
if (sb.Length > 0)
{
context.Response.ClearContent();
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.Write(sb.ToString());
context.Response.End();
}
}
#region 根据Datatable的数据结构转换成json数据
public string CreateJsonParameters(DataTable dt)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
if (dt != null && dt.Rows.Count > 0)
{
sb.Append("[");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
//如果值不是最后一个则添加逗号分隔
if (j < dt.Columns.Count - 1)
{
sb.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");
}
//如果值为最后个字符则不添加逗号
else if (j == dt.Columns.Count - 1)
{
sb.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");
}
}
//如果为最后一个值的话 则不添加逗号
if (i == dt.Rows.Count - 1)
{
sb.Append("}");
}
else
{
sb.Append("},");
}
}
sb.Append("]");
return sb.ToString();
}
else { return null; }
}
#endregion
希望本文所述对大家jQuery程序设计有所帮助。