温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
1//------------------------------------------------------------------------------ 2
// <copyright company="Tunynet"> 3
// Copyright (c) Tunynet Inc. All rights reserved. 4
// </copyright> 5
//------------------------------------------------------------------------------ 6
7
8
9
using System; 10
using System.Collections.Generic; 11
using System.Text; 12
using System.Web.Services; 13
using SpaceBuilder.Components; 14
using System.Xml; 15
16
namespace SpaceBuilder.Web.Services 17
{ 18
/// <summary> 19
///区域WebService,用于获取相关区域数据 20
/// </summary> 21
[WebService(Name = "AreaService", Description = "获取区域数据,用于区域联动下拉框", Namespace = "http://www.spacebuilder.cn")] 22
public class AreaService : WebService 23
{ 24
/// <summary> 25
/// 构造函数 26
/// </summary> 27
public AreaService() 28
{ } 29
30
/// <summary> 31
/// 获取所有顶级区域 32
/// </summary> 33
/// <returns>xml格式的字符串</returns> 34
[WebMethod] 35
public string GetRootAreas() 36
{ 37
List<AreaStatistics> rootAreas = Areas.GetRootAreas(); 38
return ToXml(rootAreas); 39
//return ToJson(rootAreas); 40
} 41
42
/// <summary> 43
/// 获取下一级子区域 44
/// </summary> 45
/// <returns>xml格式的字符串</returns> 46
[WebMethod] 47
public string GetChildAreas(int parentAreaID) 48
{ 49
List<AreaStatistics> childAreas = Areas.GetChildAreas(parentAreaID); 50
return ToXml(childAreas); 51
//return ToJson(childAreas); 52
} 53
54
/// <summary> 55
/// 把区域数据转换成xml格式 56
/// </summary> 57
/// <param name="areas">区域数据集合</param> 58
/// <returns>xml格式的字符串</returns> 59
/// <example> 60
///<?xml version="1.0" encoding="utf-8"?> 61
///<areas> 62
/// <area> 63
/// <id>2</id> 64
/// <name>北京市</name> 65
/// </area> 66
/// <area> 67
/// <id>4</id> 68
/// <name>上海市</name> 69
/// </area> 70
/// <area> 71
/// <id>6</id> 72
/// <name>天津市</name> 73
/// </area> 74
///</areas> 75
/// </example> 76
private string ToXml(List<AreaStatistics> areas) 77
{ 78
if (areas == null) 79
return string.Empty; 80
81
StringBuilder areasXml = new StringBuilder(); 82
XmlWriterSettings settings = new XmlWriterSettings(); 83
//settings.Encoding = Encoding.UTF8; 84
settings.OmitXmlDeclaration = false; 85
settings.Indent = false; 86
87
using (XmlWriter writer = XmlWriter.Create(areasXml, settings)) 88
{ 89
writer.WriteRaw("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"); 90
writer.WriteStartElement("areas"); 91
foreach (AreaStatistics areaStatistics in areas) 92
{ 93
writer.WriteStartElement("area"); 94
writer.WriteElementString("id", areaStatistics.AreaID.ToString()); 95
writer.WriteElementString("name", areaStatistics.Name); 96
writer.WriteEndElement(); 97
} 98
writer.WriteEndElement(); 99
writer.Flush(); 100
writer.Close(); 101
} 102
103
string sss = areasXml.ToString(); 104
return areasXml.ToString(); 105
} 106
107
108
private string ToJson(List<AreaStatistics> areas) 109
{ 110
if (areas == null) 111
return string.Empty; 112
113
StringBuilder areasJson = new StringBuilder(); 114
115
areasJson.Append("["); 116
foreach (AreaStatistics areaStatistics in areas) 117
{ 118
areasJson.Append("{"); 119
areasJson.Append("name:"); 120
areasJson.Append("\""+areaStatistics.Name+"\","); 121
areasJson.Append("id:"); 122
areasJson.Append("\""+areaStatistics.AreaID+"\""); 123
areasJson.Append("},"); 124
} 125
areasJson.Append("]"); 126
127
128
return areasJson.ToString(); 129
} 130
131
} 132
} 133





}