| 
                         首先贴上Jquery的ajax:  复制代码 代码如下:  $.ajax({  url: 'ws_Ajax.asmx/BindDictByUpper', type: 'POST', contentType: 'application/json;charset=utf-8', dataType: 'json', data: '{ PpareId:"' + varlue + '"}', success: function (data) {  var dataObj = eval("(" + data + ")");  // $('#myList').html('');  // for (var i = 0; i < msg.d.length; i++) {  // $('#myList').append('<li>' + msg.d[i] + '</li>');  // }  alert(dataObj);  $.each({ name: "John",lang: "JS" },function (i,n) {  alert("Name: " + i + ",Value: " + n);  });  $.each(dataObj,function (idx,item) {  if (idx == 0) {  return true; //同countinue,返回false同break  }  alert("name:" + item['name'] + ",value:" + item['value']);  });  }, //data: '{query:"' + $('#editQuery').val() + '"}', processData: false  });    好,前台写好,建一个webservice页,写上方法:  复制代码 代码如下:  /// <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["字典内容"].ToString(),pdr["序号"].ToString());  jsonString.Append("},");  // jsonString.AppendFormat("{name:'{0}',value:'{1}'},",pdr["序号"].ToString());  }  jsonString.Remove(jsonString.Length - 1,1);  jsonString.Append("]");  return jsonString.ToString();  }    然后尝试着运行,这是出问题列,无论怎样运行都不能调到后台方法:  最后在网上查列好久  才发现在新建的webservice页少了一句关键的话: 
  复制代码 代码如下:  [System.Web.Script.Services.ScriptService]   
  在类前面加上这句话就可以了  加上以后再运行,好,可以调到后台了  后台的数据也发送到前台  但又出现问题列,发过来的数据不能以解析出来json数据  按网上说的,只要把ajax中的dataType设置为json就行了,但是实际上不行,然后在网上查了下:  1、对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次  2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法  但是我把他的dataType设置为json,应该直接可以用le?  于是我把传回来的数据放在eval()方法里面处理了下,再调用就可以le?  这样前台调出来的数据就可以直接按你需要的方式处理了。  我这里还又一个疑问:  我用这种方式取数为什么查不出来数据(我对json不是很熟,第一次用):  复制代码 代码如下:  $.each(data.root,function(idx,item){  if(idx==0){  return true;//同countinue,返回false同break  }  alert("name:"+item.name+",value:"+item.value);  });  });    网上看的这样方式页可以调用json数据,知道的给解答下……                         (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |