json通过一般处理程序向jquery传数据的总结(基于ligerui)
注意事项:
1 主要是返回数据类型要有"[ ]"这种格式
一 一般处理程序内容 test.ashx内容
context.Response.ContentType = "text/plain";
(1)字符串传输
string data = "[{\"name\":\"zhangsan\",\"id\":1},{\"name\":\"lisi\",\"id\":2}]";
context.Response.Write(data);
(2) 实体类传输
先定义实体类 shuju.cs
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}
private int _id;
public int id
{
get { return _id; }
set { _id= value; }
}
再编写一般处理程序内容
shuju _shuju= new shuju();
_shuju.id= 3;
_shuju.name= "wangming";
JavaScriptSerializer serializer = new JavaScriptSerializer();//using System.Web.Script.Serialization;
string data = "[" + serializer.Serialize(_shuju) + "]";
context.Response.Write(data);
(3) DataTable类型(参考了网上方法)
DataSet ds = jtBll.GetList("");//获取DataSet类型数据
string strDt = DsToJson(ds.Tables[0]);
context.Response.Write(strDt);
转换方法
/// <summary>
/// DataTable转Json
/// </summary>
/// <param name="dtb"></param>
/// <returns></returns>
private string DtToJson(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = new ArrayList();
foreach (DataRow row in dtb.Rows)
{
Dictionary<string, object> drow = new Dictionary<string, object>();
foreach (DataColumn col in dtb.Columns)
{
drow.Add(col.ColumnName, row[col.ColumnName]);
} dic.Add(drow);
}
return jss.Serialize(dic);
}
二 前台页面内容
采用了ligerUI的jquery下拉控件
(1)js内容
<script type="text/javascript">
$(function () {
$("#ddlleixing").ligerComboBox({
// data: [ //数据源 json格式
// { text: '11', id: 'a' },
// { text: '22', id: 'b' },
// { text: '33', id: 'c' }
// ],
url: 'test.ashx',
textField:'name', //text对应的字段名
valueField: 'id' //value对应的字段名
});
});
</script>
(2)html内容
<div>
<input id="ddlleixing" type="text" />
</div>

浙公网安备 33010602011771号