首先贴上Jquery的ajax:
$.ajax({
url: 'ws_Ajax.asmx/BindDictByUpper',
유형: 'POST',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: '{ PpareId:"' varlue '"}',
성공: function (data) {
var dataObj = eval("(" data ")")
// $(' #myList').html('');
// for (var i = 0; i < msg.d.length; i ) {
// $('#myList').append( '
' msg.d[i] '')
// }
alert(dataObj)
$.each({ 이름: "John", lang : "JS" }, function (i, n) {
alert("이름: " i ", 값: " n)
})
$.each(dataObj, function (idx, item) {
if (idx == 0) {
return true; //同countinue, 返回false同break
}
alert("name:" item['name'] ", 값:" 항목['값']);
});
},
//data: '{query:"' $('#editQuery').val() '"}' ,
processData: false
});
好,前台写好,建一个webservice页,写上方法:
///
/// Datatable转换为Json
/// ///
Datatable对象
///
Json字符串 공개 정적 문자열 ToJson(DataTable Adt)
{
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
foreach(Adt.Rows의 DataRow pdr)
{
jsonString.Append("{");
jsonString.AppendFormat("name:"{0}",value:"{1}"", pdr["字典内容"].ToString(), pdr["序号"].ToString());
jsonString.Append("},");
// jsonString.AppendFormat("{name:'{0}',value:'{1}'},", pdr["字典内容"].ToString(), pdr["序号"].ToString ());
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
jsonString.ToString()을 반환합니다.
}
然后尝试着运行,这是take问题列,无论怎样运行列不能调到后台查列好久
才发现에서 新建的webservice页少了一句关键的话:
[System.Web.Script.Services.ScriptService]
현재 상태에서 앞면加上这句话就可以了
加上以后再运行,好,可以调到后台了
后台的数据也发送到前台
但又出现问题列,发过来的数据不能以解析流来json数据
按网上说的,只要把ajax중의 dataType设置为json就行了,但是实际上不行,然后在网上查了下:
1、对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()방법론을 사용하는 방법은 다음과 같습니다.该对象即可,这里以$.getJSON방법为例说明数据处理方法
但是我把他的dataType设置为json,应该直接可以用le?
于是我把传回来的数据放재평가()방법리면处了下,再调사용就可以le?
这样前台调以直接按你需要的方式处理了.
我这里还又一个疑问:
我用这种方式取数为什么查不ute来数据(我对json不是很)熟,第一次用):
$.each( data.root,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}
alert("name:" item.name ",값:" item.value)
});
});