#c# #asp.net #xml #web-services
#c# #asp.net #xml #веб-сервисы
Вопрос:
Я пытаюсь добавить веб-службу страны в выпадающий список. Я добавил веб-ссылку и у меня есть файлы discomap и wsdl.
Вот мой код, лежащий в основе:
net.webservicex.www.country ws = new net.webservicex.www.country();
ddlCountry.DataSource = ws.GetCountries();
ddlCountry.DataBind();
Я попробовал приведенный выше код, но он отображает только один символ в строке в выпадающем списке. Я не совсем уверен, как это сделать, я впервые использую веб-сервисы. Я ценю любую помощь. Спасибо!
Комментарии:
1. какой объект возвращает ws.GetCountries()?
2. я думаю, что это строка. как мне проверить?
3. проверьте подпись на
GetCountries();
4. наведение курсора мыши на строку показывает страну. GetCountries()
5. Я бы подумал, что он должен возвращать какую-то коллекцию строк, например
List<sting>
илиIEnumerable<string>
.
Ответ №1:
GetCountries() возвращает XML. Вам нужно проанализировать XML, чтобы получить список стран в виде списка строк.
Если у вас .NET 3.5 или выше, вы можете легко это сделать с помощью LINQ to XML.
using System;
using System.Linq;
using System.Xml.Linq;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var service = new net.webservicex.www.country();
var xml = service.GetCountries();
var countries = XDocument.Parse(xml).Descendants("Name").Select(arg => arg.Value).ToList();
countriesDropDownList.DataSource = countries;
countriesDropDownList.DataBind();
}
}
}
Комментарии:
1. Я пытаюсь добавить выпадающий список в базу данных sql, но когда я делаю это с помощью ddlCountry. Выбранное значение в моей инструкции insert, в таблице отображается только первое значение из выпадающего списка. Должен ли я использовать onselectedindexchanged, чтобы каким-то образом сохранить значение? Какой код я должен использовать? TIA.