您目前尚未登陆,请选择【登陆】或【注册
首页->博客论坛->SpaceBuilder v1.1源代码>>BasicWebControls/Utility/AreaPicker.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
当前文件:文件类型 SpaceBuider11/BasicWebControls/Utility/AreaPicker.cs打开代码结构图
普通视图
		            
1//------------------------------------------------------------------------------ 2// <copyright company="Tunynet"> 3// Copyright (c) Tunynet Network Technology Co., Ltd. All rights reserved. 4// </copyright> 5//------------------------------------------------------------------------------ 6 7using System; 8using System.Collections.Generic; 9using System.Text; 10using SpaceBuilder.Components; 11using SpaceBuilder.Controls.Utils; 12using System.Web.UI.HtmlControls; 13using System.Web.UI.WebControls; 14using SpaceBuilder.Controls; 15using TunyNet.Data.Utils; 16using SpaceBuilder.Controls.BaseClasses; 17using SpaceBuilder.Blogs.Components; 18using SpaceBuilder.Bookmarks.Components; 19using SpaceBuilder.Clubs.Components; 20using SpaceBuilder.Events.Components; 21using SpaceBuilder.Files.Components; 22using SpaceBuilder.Galleries.Components; 23using TunyNet.Web.UI; 24using SpaceBuilder.Configuration; 25using SpaceBuilder.Clubs.Configuration; 26using SpaceBuilder.Events.Configuration; 27using System.Web.UI; 28using SpaceBuilder.Utils; 29using TunyNet.Utils; 30 31namespace SpaceBuilder.Web.Controls 32{ 33 /// <summary> 34 /// 地区选择器 35 /// </summary> 36 public class AreaPicker : TemplatedWebControl 37 { 38 SBContext wlContext = SBContext.Current; 39 int nowAreaDepth = 1; 40 int areaID = -1; 41 int purposeInt = 1; 42 43 protected override void OnInit(EventArgs e) 44 { 45 if (SkinName == null) 46 ExternalSkinFileName = "Utility/Skin-AreaPicker.ascx"; 47 else 48 ExternalSkinFileName = SkinName; 49 50 wlContext = SBContext.Current; 51 52 base.OnInit(e); 53 } 54 55 56 ... 89 90 protected override void AttachChildControls() 91 { 92 firstLevel = FindControl("FirstLevel") as DropDownList; 93 firstLevel.SelectedIndexChanged += new EventHandler(firstLevel_SelectedIndexChanged); 94 secondLevel = FindControl("SecondLevel") as DropDownList; 95 secondLevel.SelectedIndexChanged += new EventHandler(secondLevel_SelectedIndexChanged); 96 thirdLevel = FindControl("ThirdLevel") as DropDownList; 97 thirdLevel.SelectedIndexChanged += new EventHandler(thirdLevel_SelectedIndexChanged); 98 forthLevel = FindControl("ForthLevel") as DropDownList; 99 forthLevel.SelectedIndexChanged += new EventHandler(forthLevel_SelectedIndexChanged); 100 childAreas = FindControl("ChildAreas") as RadioButtonList; 101 childAreas.SelectedIndexChanged += new EventHandler(childAreas_SelectedIndexChanged); 102 save = FindControl("Save") as LinkButton; 103 save.Text = ResourceManager.GetString("Save"); 104 save.Click += new EventHandler(save_Click); 105 if (ForceDepth) 106 save.Enabled = false; 107 108 } 109 110 111 void childAreas_SelectedIndexChanged(object sender, EventArgs e) 112 { 113 BindAreas(); 114 } 115 116 void forthLevel_SelectedIndexChanged(object sender, EventArgs e) 117 { 118 nowAreaDepth = 4; 119 BindChildAreas(); 120 } 121 122 void thirdLevel_SelectedIndexChanged(object sender, EventArgs e) 123 { 124 nowAreaDepth = 3; 125 BindChildAreas(); 126 } 127 128 void secondLevel_SelectedIndexChanged(object sender, EventArgs e) 129 { 130 nowAreaDepth = 2; 131 BindChildAreas(); 132 } 133 134 void firstLevel_SelectedIndexChanged(object sender, EventArgs e) 135 { 136 nowAreaDepth = 1; 137 BindChildAreas(); 138 } 139 140 141 void save_Click(object sender, EventArgs e) 142 { 143 string saveAreaID = childAreas.SelectedValue; 144 if (ValueHelper.IsNullOrEmpty(saveAreaID)) 145 { 146 if (ValueHelper.IsNullOrEmpty(forthLevel.SelectedValue)) 147 { 148 if (ValueHelper.IsNullOrEmpty(thirdLevel.SelectedValue)) 149 { 150 if (ValueHelper.IsNullOrEmpty(secondLevel.SelectedValue)) 151 { 152 saveAreaID = firstLevel.SelectedValue; 153 } 154 else 155 saveAreaID = secondLevel.SelectedValue; 156 } 157 else 158 saveAreaID = thirdLevel.SelectedValue; 159 } 160 else 161 saveAreaID = forthLevel.SelectedValue; 162 } 163 string returnValues = string.Format("new Array(\"{0}\",\"{1}\")", Formatter.FormatArea(Convert.ToInt32(saveAreaID), 0,2), saveAreaID); 164 //string closeScript = string.Format("{0}", TunyNet.Web.UI.Modal.GetCloseScript(this.Page, returnValues)); 165 //Page.ClientScript.RegisterStartupScript(this.GetType(), this.GetType().FullName, closeScript); 166 167 //ScriptManager.RegisterStartupScript(this, this.GetType(), this.GetType().FullName, closeScript, true); 168 ModalHelper.ClosePage(this.Page, returnValues); 169 } 170 171 protected override void OnLoad(EventArgs e) 172 { 173 base.OnLoad(e); 174 EnsureChildControls(); 175 Header.AddTitle("地区选择", Context); 176 areaID = wlContext.GetIntFromQueryString("AreaID", -1); 177 purposeInt = wlContext.GetIntFromQueryString("Purpose", 1); 178 179 if (!Page.IsPostBack) 180 Bind(); 181 182 } 183 184 private void Bind() 185 { 186 if (areaID > 0) 187 { 188 Area area = Areas.GetAreaStatistics(areaID); 189 Area parentArea; 190 if (area != null) 191 { 192 childAreas.SelectedValue = Convert.ToString(area.AreaID); 193 AreaDropDownListVisibleSet(Depth); 194 switch (Depth) 195 { 196 case 1: 197 break; 198 case 2: 199 if (area.ParentID > 0) 200 { 201 firstLevel.SelectedValue = Convert.ToString(area.ParentID); 202 } 203 break; 204 case 3: 205 if (area.ParentID > 0) 206 { 207 secondLevel.SelectedValue = Convert.ToString(area.ParentID); 208 } 209 parentArea = Areas.GetAreaStatistics(area.ParentID); 210 if (parentArea != null && parentArea.ParentID > 0) 211 { 212 firstLevel.SelectedValue = Convert.ToString(area.ParentID); 213 } 214 break; 215 case 4: 216 if (area.ParentID > 0) 217 { 218 thirdLevel.SelectedValue = Convert.ToString(area.ParentID); 219 } 220 parentArea = Areas.GetAreaStatistics(area.ParentID); 221 if (parentArea != null && parentArea.ParentID > 0) 222 { 223 secondLevel.SelectedValue = Convert.ToString(parentArea.ParentID); 224 } 225 Area subRootArea = Areas.GetAreaStatistics(parentArea.ParentID); 226 if (subRootArea != null && subRootArea.ParentID > 0) 227 firstLevel.SelectedValue = Convert.ToString(subRootArea.ParentID); 228 229 break; 230 default: 231 break; 232 } 233 } 234 } 235 else 236 { 237 List<AreaStatistics> areas = new List<AreaStatistics>(); 238 areas = Areas.GetRootAreas(); 239 if (areas != null && areas.Count > 0) 240 { 241 firstLevel.Visible = true; 242 firstLevel.Items.Clear(); 243 foreach (Area area in areas) 244 { 245 firstLevel.Items.Add(new ListItem(area.Name, Convert.ToString(area.AreaID))); 246 } 247 //firstLevel.DataSource = areas; 248 } 249 } 250 //if (nowAreaDepth == (Depth+1)) 251 // save.Enabled = true; 252 //else 253 // save.Enabled = false; 254 } 255 256 /// <summary> 257 /// 当选定下了列表中的某个地区的时候 258 /// </summary> 259 private void BindChildAreas() 260 { 261 AreaDropDownListVisibleSet(nowAreaDepth); 262 switch (nowAreaDepth) 263 { 264 case 1: 265 ShowChildAreas(Convert.ToInt32(firstLevel.SelectedValue)); 266 break; 267 case 2: 268 ShowChildAreas(Convert.ToInt32(secondLevel.SelectedValue)); 269 break; 270 case 3: 271 ShowChildAreas(Convert.ToInt32(thirdLevel.SelectedValue)); 272 break; 273 case 4: 274 ShowChildAreas(Convert.ToInt32(forthLevel.SelectedValue)); 275 break; 276 default: 277 break; 278 } 279 //if (nowAreaDepth == (Depth)) 280 // save.Enabled = true; 281 //else 282 // save.Enabled = false; 283 284 } 285 286 /// <summary> 287 /// 设置下拉列表的显示情况 288 /// </summary> 289 private void AreaDropDownListVisibleSet(int level) 290 { 291 switch (level) 292 { 293 case 1: 294 firstLevel.Visible = true; 295 secondLevel.Visible = false; 296 thirdLevel.Visible = false; 297 forthLevel.Visible = false; 298 break; 299 case 2: 300 firstLevel.Visible = true; 301 secondLevel.Visible = true; 302 thirdLevel.Visible = false; 303 forthLevel.Visible = false; 304 break; 305 case 3: 306 firstLevel.Visible = true; 307 secondLevel.Visible = true; 308 thirdLevel.Visible = true; 309 forthLevel.Visible = false; 310 break; 311 case 4: 312 firstLevel.Visible = true; 313 secondLevel.Visible = true; 314 thirdLevel.Visible = true; 315 forthLevel.Visible = true; 316 break; 317 default: 318 break; 319 } 320 321 } 322 323