我用ASP.net编写了一个web方法,它的输出是从Sql server数据库中读取的城市的ArrayList。此webmethod在客户端使用Jquery调用。但是我不知道如何使用jquery读取数组列表的每一项。例如,每个城市和它的id等价。下面是我的Webmethod:
public ArrayList showcity(int s)
{
ArrayList list = new ArrayList();
String strConnString = ConfigurationManager
.ConnectionStrings["ConnectionCS"].ConnectionString;
String strQuery = "select ID, City from tbl_city where stateid=@s";
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@s", s);
cmd.CommandText = strQuery;
cmd.Connection = con;
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
list.Add(new ListItem(
sdr["City"].ToString(),
sdr["ID"].ToString()
));
}
con.Close();
return list;
}
}这是我的客户端代码:
function showcity() {
$.ajax(
{ url: "../AjaxServices/StateCity.asmx/showcity",
contentType: "application/json; charset=utf-8",
dataType: "json",
type: "POST",
data: '{s: ' + $('#<%=DpState.ClientID%>').val() + '}',
success: function(data) {
***// what should I write here to access every item separately***
},
error: function() { alert("Error"); }
})
}如果我使用alert(data.d),我会得到objectobject,.....
发布于 2011-03-24 21:54:12
我自己找到了一个解决方案,所以我在这里分享它,只是要小心Value和Text,它们区分大小写
success: function(data) {
$.each(data.d, function() {
alert(this['Value'] + ':' + this['Text']);
})
}发布于 2011-03-24 20:57:03
您需要创建一个实际的类型并返回该类型的数组。因此,创建一个City类,将其标记为可序列化,在循环中构建一个List<City>,然后返回.ToArray()。web方法的返回类型应为City[]
发布于 2011-03-24 21:01:37
与其返回ArrayList,不如返回一个二维数组。
https://stackoverflow.com/questions/5419395
复制相似问题