• jquery + json 操作


     jquery 读取集合对象多是要与json进行解析操作的,以下自己经过多方资料查找,终于有一套自己的方式组合.

     1.首先创建web services或一般处理程序,用于显示获取Datatable对象
    product.asmx   
     [WebMethod]
    -- BigClassName 传递的参数
            public string Test(string BigClassName)  
            {
                System.Text.StringBuilder strwhere = new System.Text.StringBuilder();
                strwhere.Append(" and BigClassName='").Append(BigClassName).Append("'");
                System.Data.DataTable dt = new BLL.smallclass_BLL().GetList(strwhere.ToString());   // 从数据获取Datatable对象
                return ToJson(dt);
            }
    ----- 这是转换成json格式进行输出显示,因为前台jquery不接受显示DataTable对象;--- 复用性不大
     /// <summary> 
            /// Datatable转换为Json 
            /// </summary> 
            /// <param name="table">Datatable对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(DataTable Adt)
            {
                StringBuilder jsonString = new StringBuilder();
                jsonString.Append("[");
                foreach (DataRow pdr in Adt.Rows)
                {
                    jsonString.Append("{");
                    jsonString.AppendFormat(""name":"{0}","value":"{1}"", pdr["SmallClassName"].ToString(), pdr["SmallClassName"].ToString());
                    jsonString.Append("},");
                }
                jsonString.Remove(jsonString.Length - 1, 1);
                jsonString.Append("]");
                return jsonString.ToString();
            }
    ----这是显示前台jquery代码
     function GetType3(args) {
            var id = "<%=ddltype2.ClientID  %>";  // 这是获取ID号,因为我是在用户控件上测试的,
            $("#" + id).html("");  
            $("#" + id).append("<option value='0' selected='selected'>选择小类</option>");
            $.ajax({
                type: "post",
                dataType: "json",
                contentType: "application/json;charset=utf-8",
                url: "/Ajax/product.asmx/Test",
                data: "{BigClassName:'" + args + "'}",
                success: function(data) {
                     // 此处是重点,我就是在这个地方弄了好久,如果你直接使用data赋值,那就会获取不到值会弹出undefined
     
    var obj = eval(data.d); 
                    $.each(obj, function(field) { alert(obj[field].value); });  
     
                   var json = data.d;
                    json = eval(json);
                    for (var i = 0; i < json.length; i++) {
                        $("#" + id).append("<option value='" +  json[i].value + "'>" + json[i].name + "</option>");
                     }
                }
     
            });
  • 相关阅读:
    (转载)VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)
    (转载)VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用)
    (转载)VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下)
    (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
    ubuntu下格式化u盘
    Android笔记之AppWidget
    Android笔记之ViewPager实现滑动页面
    Android笔记之获取布局中的多个子控件
    Android笔记之Actionbar制作选项卡(可滑动)
    Android笔记之Actionbar使用(二)
  • 原文地址:https://www.cnblogs.com/scwyh/p/3188348.html
Copyright © 2020-2023  润新知