在使用外部Web服务的国家的DropDownList中填充的字符

时间:2015-07-10 15:43:49

标签: c# asp.net web-services

下拉列表会返回国家/地区列表的结果,如图http://i.stack.imgur.com/dnxQP.png所示 Web服务取自http://www.webservicex.net/country.asmx?WSDL 我只使用GetCountries方法。 我的编码如下,

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace WebServices
{
    public partial class GetCountries : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ServiceReference1.countrySoapClient client =  new ServiceReference1.countrySoapClient();

            DropDownList1.DataSource = client.GetCountries();
            DropDownList1.DataBind();



        }

    }
}

1 个答案:

答案 0 :(得分:0)

您需要设置下拉列表的datatext字段和datavalue字段。 您可以在代码或aspx页面中进行设置。 此外,您不应直接在页面加载中设置数据源。你应该把它放在!page.isPostBack

里面

由于您将响应作为XML获得,因此您可以使用Linq-to-XML从xml树中获取所需值的集合,并将其绑定到下拉列表。请看这个链接:http://msdn.microsoft.com/en-us/library/bb387061.aspx

OP使用以下代码行解决了他的问题(基于他的评论)

var xml = client.GetCountries(); var countries = XDocument.Parse(xml).Descendants("Name").Select(arg => arg.Value).ToList(); DropDownList1.DataSource = countries; DropDownList1.DataBind();