解析AJAX成功函数中返回的C#列表 [英] Parse returned C# list in AJAX success function
本文介绍了解析AJAX成功函数中返回的C#列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Web表单,而我的Ajax函数正在调用的代码背后有一个Web方法.似乎web方法正在返回数据,但是我在将返回的json字符串解析为表行时遇到困难
I am using web forms and I have a webmethod in the code behind that my ajax function is calling. It appears that the webmethod is returning data but I am having trouble parsing the returned json string into table rows
这是我的方法(Web方法)背后的代码:
Here is my code behind method (Web Method):
public class Part
{
public string Number { get; set; }
public string Price { get; set; }
public string NetAvailable { get; set; }
public string Location { get; set; }
public string Distance { get; set; }
public string Phone { get; set; }
}
[WebMethod]
public static List<Part> GetParts(string partnumber)
{
List<Part> parts = new List<Part>();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["NXT"].ToString()))
{
con.Open();
using (SqlCommand command = new SqlCommand("SELECT prod, qtyonhand, whse, listprice FROM icsw where prod LIKE @partnumber", con))
{
command.Parameters.AddWithValue("@partnumber", "%" + partnumber + "%");
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Part part = new Part
{
Number = reader[0].ToString(),
Price = reader[3].ToString(),
NetAvailable = reader[1].ToString(),
Distance = "0.0",
Location = reader[2].ToString(),
Phone = GetBranchPhoneNumber(reader[2].ToString())
};
parts.Add(part);
}
}
}
}
return parts;
}
这是我的AJAX电话:
Here is my AJAX call:
$("#searchbtn").click(function() {
$.ajax({
url: 'partslocator.aspx/GetParts',
type: 'POST',
data: JSON.stringify({ 'partnumber': $("#searchtbx").val()}),
dataType: 'json',
contentType: 'application/json',
success: function (data) {
for (var i in data) {
alert(JSON.stringify(data[i]));
$('#searchresultstble').append("<tr><td>" + data[i].Number + "</td><td>" + data[i].Price + "</td><td>" + data[i].NetAvailable + "</td><td>" + data[i].Location + "</td><td>" + data[i].Distance + "</td><td>" + data[i].Phone + "</td></tr>");
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
});
以下是返回的数据:
{"d":[{"__type":"partslocator+Part","Number":"0-2809 1025","Price":"2.50000","NetAvailable":"0.00","Location":"82pk","Distance":"0.0","Phone":"test"},{"__type":"partslocator+Part","Number":"0-2809 1025","Price":"2.58000","NetAvailable":"0.00","Location":"Phx","Distance":"0.0","Phone":"test"}]}
为什么对所有要添加的行都无法定义?
Why am I getting undefined for all the rows that are being added?
推荐答案
您将注意到,返回的data
实际上不是数组,而是一个值(d
)包含该数组的对象.试试这个:
You'll note that the returned data
is not actually an array, but an object with a value (d
) that contains that array. Try this:
success: function (returnedData) {
var data = returnedData.d;
for (var i in data) {
alert(JSON.stringify(data[i]));
$('#searchresultstble').append("<tr><td>" + data[i].Number + "</td><td>" + data[i].Price + "</td><td>" + data[i].NetAvailable + "</td><td>" + data[i].Location + "</td><td>" + data[i].Distance + "</td><td>" + data[i].Phone + "</td></tr>");
}
},
这篇关于解析AJAX成功函数中返回的C#列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文