首先贴上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 // $('#mylist').append('' + msg.d[i] + '');
// }
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页,写上方法:
复制代码 代码如下:
///
/// datatable转换为json
///
/// datatable对象
/// json字符串
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(), 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数据,知道的给解答下……