引用网址:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
//第一次加载,显示省份、直辖市、地区
if (!IsPostBack)
{
TheWeatherInfo.WeatherWebService weather = new TheWeatherInfo.WeatherWebService();
//getSupportProvince方法---返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。
this.Dwprovince.DataSource = weather.getSupportProvince();
Dwprovince.DataBind();
}
}
//当省份下拉列表改变时的事件
protected void Dwprovince_SelectedIndexChanged(object sender, EventArgs e)
{
//对城市下拉列表项进行清空
Dwcity.Items.Clear();
TheWeatherInfo.WeatherWebService weather = new TheWeatherInfo.WeatherWebService();
//getSupportCity方法---输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市代码)。
string[] str=weather.getSupportCity(Dwprovince.SelectedValue);
//由于含有城市代码,显示不简洁,所以将不予显示城市代码。例:北京 (54511),其最终显示结果为北京,而(54511)将不予显示
foreach (string item in str)
{
Dwcity.Items.Add(item.Substring(0,item.IndexOf("(")));
}
}
//单击按钮事件:显示天气状况
protected void BtnSearch_Click(object sender, EventArgs e)
{
TheWeatherInfo.WeatherWebService weather = new TheWeatherInfo.WeatherWebService();
//getWeatherbyCityName方法---返回数据: 一个一维数组 String(22),共有23个元素。包含未来三天内天气情况、现在的天气实况、天气和生活指数信息,这里只是将几个信息拿出来演示
string[] AllInfo = weather.getWeatherbyCityName(Dwcity.SelectedValue);
//LblShowInfo为Lable控件,起显示作用
LblShowInfo.Text = "省份:" + AllInfo[0] + ";" + "城市:" + AllInfo[1] + ";";
LblShowInfo.Text +="</br>" + "气温: " + AllInfo[5] + ";" + "概况: " + AllInfo[6] + ";" + "风向和风力: " + AllInfo[7] + ";";
}
控件界面:
HTML界面:
网页显示:
最终效果: