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>

 

posted @ 2012-02-25 16:38  chenfan31  阅读(1033)  评论(0编辑  收藏  举报