温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
当前文件:
SpaceBuider11/BasicWebControls/Manage/Event/ManageEventCategories.cs[7K,2009-6-12 11:54:33],打开代码结构图
SpaceBuider11/BasicWebControls/Manage/Event/ManageEventCategories.cs[7K,2009-6-12 11:54:33],打开代码结构图1//------------------------------------------------------------------------------ 2
// <copyright company="Tunynet"> 3
// Copyright (c) Tunynet Inc. All rights reserved. 4
// </copyright> 5
//------------------------------------------------------------------------------ 6
7
8
using System; 9
using System.Collections.Generic; 10
using System.Text; 11
using SpaceBuilder.Components; 12
using SpaceBuilder.Posts.Permissions; 13
using System.Web.UI.WebControls; 14
using SpaceBuilder.Controls.Utils; 15
using SpaceBuilder.Events.Components; 16
using TunyNet.Data.Utils; 17
using TunyNet.Utils; 18
using SpaceBuilder.Utils; 19
20
namespace SpaceBuilder.Web.Manage.Controls 21
{ 22
/// <summary> 23
/// 管理活动类别 24
/// </summary> 25
public class ManageEventCategories : ManageBaseControl 26
{ 27
SBContext sbContext; 28
Int32 depth = SpaceBuilder.Events.Configuration.EventConfiguration.Instance().CategoryDepth; 29
30
/// <summary> 31
/// 验证权限 32
/// </summary> 33
protected override void Authorize() 34
{ 35
base.Authorize(); 36
37
if (!(SBContext.Current.User.IsEventAdministrator)) 38
PermissionBase.RedirectOrExcpetion(SBExceptionType.AccessDenied); 39
} 40
41
protected override void OnInit(EventArgs e) 42
{ 43
if (SkinName == null) 44
SkinName = "Events/Skin-ManageEventCategories.ascx"; 45
46
sbContext = SBContext.Current; 47
base.OnInit(e); 48
} 49
50
protected override void OnLoad(EventArgs e) 51
{ 52
base.OnLoad(e); 53
EnsureChildControls(); 54
RefreshJavaScript.RegisterRefresh(Page); 55
if (!Page.IsPostBack) 56
BindData(); 57
} 58
59
60
Child Controls 84
85
protected override void AttachChildControls() 86
{ 87
eventCategoryListRepeater = FindControl("EventCategoryListRepeater") as Repeater; 88
createButton = FindControl("CreateButton") as ModalLink; 89
if (eventCategoryListRepeater != null) 90
{ 91
eventCategoryListRepeater.ItemDataBound += new RepeaterItemEventHandler(eventCategoryListRepeater_ItemDataBound); 92
eventCategoryListRepeater.ItemCommand += new RepeaterCommandEventHandler(eventCategoryListRepeater_ItemCommand); 93
} 94
95
} 96
97
void BindData() 98
{ 99
this.SetPageTitle("圈子类别管理"); 100
101
categories = EventCategories.GetAllCategories(); 102
if (createButton != null) 103
{ 104
createButton.Url = ManagerUrls.Instance().AddRootEventCategory(); 105
} 106
eventCategoryListRepeater.DataSource = categories; 107
eventCategoryListRepeater.DataBind(); 108
} 109
110
111
void eventCategoryListRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 112
{ 113
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 114
{ 115
EventCategory eventCategory = (EventCategory)e.Item.DataItem; 116
if (eventCategory != null) 117
{ 118
if (eventCategory.Depth <= depth) 119
{ 120
Literal prefix = e.Item.FindControl("Prefix") as Literal; 121
if (prefix != null) 122
{ 123
prefix.Text = PrefixForDepth(eventCategory); 124
} 125
126
HyperLink eventCategoryName = e.Item.FindControl("EventCategoryName") as HyperLink; 127
if (eventCategoryName != null) 128
{ 129
eventCategoryName.Text = eventCategory.CategoryName; 130
eventCategoryName.NavigateUrl = ChannelUrls.Instance().EventShowCategory(eventCategory.CategoryID, 1); 131
eventCategoryName.Target = "_blank"; 132
} 133
134
Literal eventCount = e.Item.FindControl("EventCount") as Literal; 135
if (eventCount != null) 136
eventCount.Text = eventCategory.CumulateCount.ToString(); 137
ModalLink updateButton = e.Item.FindControl("UpdateButton") as ModalLink; 138
if (updateButton != null) 139
{ 140
updateButton.Url = ManagerUrls.Instance().EditEventCategory(eventCategory.CategoryID); 141
} 142
LinkButton deleteButton = e.Item.FindControl("DeleteButton") as LinkButton; 143
{ 144
deleteButton.CommandArgument = eventCategory.CategoryID.ToString(); 145
deleteButton.Attributes["onclick"] = "if(!confirm(\"确认要删除此活动类别吗?\")) return false;"; 146
} 147
if (depth >= (eventCategory.Depth + 1)) 148
{ 149
ModalLink addChildCategory = e.Item.FindControl("AddChildCategory") as ModalLink; 150
if (addChildCategory != null) 151
{ 152
addChildCategory.Visible = true; 153
addChildCategory.Url = ManagerUrls.Instance().AddChildEventCategory(eventCategory.CategoryID); 154
} 155
} 156
} 157
else 158
{ 159
e.Item.Visible = false; 160
} 161
} 162
} 163
} 164
165
private string PrefixForDepth(EventCategory eventCategory) 166
{ 167
string prefixString = string.Empty; 168
for (int i = 1; i < eventCategory.Depth; i++) 169
{ 170
prefixString += " "; 171
} 172
return prefixString; 173
} 174
175
176
void eventCategoryListRepeater_ItemCommand(object source, RepeaterCommandEventArgs e) 177
{ 178
switch (e.CommandName) 179
{ 180
case "Delete": 181
int eventCategoryID = Convert.ToInt32(e.CommandArgument); 182
if (DeleteEventCategoryStatus.ExistsEvent == EventCategories.Delete(eventCategoryID)) 183
{ 184
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), this.GetType().FullName, "alert('您必须删除该类别下的所有活动才能删除此类别!');", true); 185
} 186
//else 187
//{ 188
// sbContext.Context.Response.Redirect(ManagerUrls.Instance().ManageEventCategories()); 189
//} 190
BindData(); 191
break; 192
} 193
} 194
195
196
property 199
} 200
} 201






}