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>");
                 }
            }

        });

----當然別完了引用jquery.js哦.....
       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章