下拉列表会返回国家/地区列表的结果,如图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();
}
}
}
答案 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();