首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arraylist和webmethod

Arraylist和webmethod
EN

Stack Overflow用户
提问于 2011-03-24 20:50:25
回答 3查看 2K关注 0票数 1

我用ASP.net编写了一个web方法,它的输出是从Sql server数据库中读取的城市的ArrayList。此webmethod在客户端使用Jquery调用。但是我不知道如何使用jquery读取数组列表的每一项。例如,每个城市和它的id等价。下面是我的Webmethod:

代码语言:javascript
复制
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;
                }
            }

这是我的客户端代码:

代码语言:javascript
复制
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,.....

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-24 21:54:12

我自己找到了一个解决方案,所以我在这里分享它,只是要小心ValueText,它们区分大小写

代码语言:javascript
复制
 success: function(data) {
                $.each(data.d, function() {
                    alert(this['Value'] + ':' + this['Text']);
                })
            }
票数 0
EN

Stack Overflow用户

发布于 2011-03-24 20:57:03

您需要创建一个实际的类型并返回该类型的数组。因此,创建一个City类,将其标记为可序列化,在循环中构建一个List<City>,然后返回.ToArray()。web方法的返回类型应为City[]

票数 2
EN

Stack Overflow用户

发布于 2011-03-24 21:01:37

与其返回ArrayList,不如返回一个二维数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5419395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档