手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
摘要:首先贴上Jquery的ajax:复制代码代码如下:$.ajax({url:'ws_Ajax.asmx/BindDictByUpper',ty...

首先贴上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(), 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数据,知道的给解答下……

【asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码】相关文章:

Jquery使用css方法改变样式实例

快速判断某个值是否在select中的方法

jQuery实现html表格动态添加新行的方法

js去字符串前后空格的实现方法

基于jQuery实现的无刷新表格分页实例

详解Angularjs filter过滤器

jQuery实现div随意拖动的实例代码(通用代码)

jquery简单实现外部链接用新窗口打开的方法

让插入到 innerHTML 中的 script 跑起来的实现代码

nodejs实现获取某宝商品分类

精品推荐
分类导航