温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
当前文件:
SpaceBuider11/BasicWebControls/Utility/AreaPicker.cs,打开代码结构图
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
7
using System; 8
using System.Collections.Generic; 9
using System.Text; 10
using SpaceBuilder.Components; 11
using SpaceBuilder.Controls.Utils; 12
using System.Web.UI.HtmlControls; 13
using System.Web.UI.WebControls; 14
using SpaceBuilder.Controls; 15
using TunyNet.Data.Utils; 16
using SpaceBuilder.Controls.BaseClasses; 17
using SpaceBuilder.Blogs.Components; 18
using SpaceBuilder.Bookmarks.Components; 19
using SpaceBuilder.Clubs.Components; 20
using SpaceBuilder.Events.Components; 21
using SpaceBuilder.Files.Components; 22
using SpaceBuilder.Galleries.Components; 23
using TunyNet.Web.UI; 24
using SpaceBuilder.Configuration; 25
using SpaceBuilder.Clubs.Configuration; 26
using SpaceBuilder.Events.Configuration; 27
using System.Web.UI; 28
using SpaceBuilder.Utils; 29
using TunyNet.Utils; 30
31
namespace 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




