ÎÂܰÌáʾ£º´úÂëÔÚÏßä¯ÀÀ¹¦ÄÜÖ»ÄÜ×öΪԴÂëä¯ÀÀ²Î¿¼£¬Èç¹ûÏë¸ü½øÒ»²½Á˽â¸Ã´úÂëÇëÏÂÔØ£ºSpaceBuilder v1.1Ô´´úÂë
µ±Ç°Îļþ£º
SpaceBuider11/BasicWebControls/Utility/UserSelector.cs£¬´ò¿ª´úÂë½á¹¹Í¼
SpaceBuider11/BasicWebControls/Utility/UserSelector.cs£¬´ò¿ª´úÂë½á¹¹Í¼1//------------------------------------------------------------------------------ 2
// <copyright company="Tunynet"> 3
// Copyright (c) Tunynet Inc. All rights reserved. 4
// </copyright> 5
//------------------------------------------------------------------------------ 6
7
using System; 8
using System.Collections.Generic; 9
using System.Text; 10
using SpaceBuilder.Controls.BaseClasses; 11
using System.Web.UI.WebControls; 12
using SpaceBuilder.Controls; 13
using SpaceBuilder.Configuration; 14
using SpaceBuilder.Components; 15
using TunyNet.Data.Utils; 16
using SpaceBuilder.Utils; 17
using TunyNet.Web.UI; 18
19
namespace SpaceBuilder.Web.Controls 20
{ 21
/// <summary> 22
/// Óû§Ñ¡ÔñÆ÷£¬ÓÃÓÚ·¢ËÍ˽ÐÅ¡¢·¢ËÍȦ×ÓÑûÇë¡¢·¢ËͻÑûÇë 23
/// </summary> 24
public class UserSelector : TemplatedWebControl 25
{ 26
SBContext sbContext; 27
28
protected override void OnInit(EventArgs e) 29
{ 30
if (SkinName == null) 31
ExternalSkinFileName = "Utility/Skin-UserSelector.ascx"; 32
else 33
ExternalSkinFileName = SkinName; 34
35
sbContext = SBContext.Current; 36
37
base.OnInit(e); 38
} 39
40
TextBox nameKeyword; 41
DropDownList searchRange; 42
Button searchButton; 43
Repeater userRepeater; 44
45
LinkButton selectButton; 46
LinkButton cancelButton; 47
48
protected override void AttachChildControls() 49
{ 50
nameKeyword = FindControl("NameKeyword") as TextBox; 51
searchRange = FindControl("SearchRange") as DropDownList; 52
searchButton = FindControl("SearchButton") as Button; 53
if (searchButton != null) 54
searchButton.Click += new EventHandler(SearchButton_Click); 55
56
userRepeater = FindControl("UserRepeater") as Repeater; 57
userRepeater.ItemDataBound += new RepeaterItemEventHandler(UserRepeater_ItemDataBound); 58
59
selectButton = FindControl("SelectButton") as LinkButton; 60
selectButton.Click += new EventHandler(SelectButton_Click); 61
62
cancelButton = FindControl("CancelButton") as LinkButton; 63
cancelButton.Click += new EventHandler(CancelButton_Click); 64
} 65
66
protected override void OnLoad(EventArgs e) 67
{ 68
base.OnLoad(e); 69
EnsureChildControls(); 70
Header.AddTitle("Ñ¡ÔñÓû§", Context); 71
72
if (!Page.IsPostBack) 73
{ 74
if (searchRange != null) 75
{ 76
searchRange.Items.Clear(); 77
78
if (SiteSettingsManager.GetSiteSettings().EnableSelectAllUserInUserSelector) 79
searchRange.Items.Add(new ListItem("ËÑË÷ËùÓÐÈË", "0")); 80
81
searchRange.Items.Add(new ListItem("ÎÒµÄÅóÓÑ", "1")); 82
searchRange.Items.Add(new ListItem("¶þ²ãÅóÓÑ", "2")); 83
searchRange.Items.Add(new ListItem("Èý²ãÅóÓÑ", "3")); 84
searchRange.Items.FindByValue("1").Selected = true; 85
searchRange.DataBind(); 86
} 87
88
BindDate(); 89
} 90
} 91
92
private void BindDate() 93
{ 94
PersonUserFullTextQuery query = new PersonUserFullTextQuery(); 95
query.NameKeyword = nameKeyword.Text.Trim(); 96
query.SearchRage = int.Parse(searchRange.SelectedValue); 97
query.PageSize = 100; 98
query.PageIndex = 0; 99
SearchResultDataSet<PersonUser> pds = UserSearchProvider.Instance().Search(sbContext.User, query); 100
userRepeater.DataSource = pds.Records; 101
userRepeater.DataBind(); 102
} 103
104
105
void SearchButton_Click(object sender, EventArgs e) 106
{ 107
BindDate(); 108
} 109
110
void UserRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 111
{ 112
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 113
{ 114
PersonUser pu = e.Item.DataItem as PersonUser; 115
if (pu != null) 116
{ 117
CheckBox selector = e.Item.FindControl("Selector") as CheckBox; 118
if (selector != null) 119
{ 120
selector.Attributes["value"] = pu.DisplayName + "," + pu.UserName; 121
} 122
123
HyperLink displayName = e.Item.FindControl("DisplayName") as HyperLink; 124
if (displayName != null) 125
{ 126
displayName.NavigateUrl = UserUrls.Instance().UserProfile(pu.UserName, pu.UserType); 127
displayName.Target = "_blank"; 128
displayName.ToolTip = "²é¿´Óû§µµ°¸"; 129
130
if (Privacys.ValidatePrivacys(pu, PrivacyItem.CommonName, sbContext.User)) 131
displayName.Text = pu.CommonName + "(" + pu.NickName + ")"; 132
else 133
if (Privacys.IsStoper(pu.UserID, sbContext.User.UserID)) 134
displayName.Text = "Òþ²Ø"; 135
else 136
displayName.Text = pu.NickName; 137
} 138
139
Literal nowArea = e.Item.FindControl("NowArea") as Literal; 140
if (nowArea != null) 141
{ 142
nowArea.Text = Formatter.FormatArea(pu.NowAreaID, 0, 2); 143
} 144
145
if (Privacys.ValidatePrivacys(pu, PrivacyItem.BusinessContactInfo, sbContext.User)) 146
{ 147
Literal companyName = e.Item.FindControl("CompanyName") as Literal; 148
if (companyName != null) 149
{ 150
companyName.Text = pu.CompanyName; 151
} 152
} 153
154
} 155
} 156
} 157
158
void SelectButton_Click(object sender, EventArgs e) 159
{ 160
List<string> displayNames = new List<string>(); 161
List<string> userNames = new List<string>(); 162
163
foreach (RepeaterItem item in this.userRepeater.Items) 164
{ 165
//ÕÒµ½Ñ¡Öи´Ñ¡¿ò 166
CheckBox selector = item.FindControl("Selector") as CheckBox; 167
if (selector != null && selector.Checked) 168
{ 169
string[] arrayValue = selector.Attributes["value"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 170
displayNames.Add(arrayValue[0]); 171
userNames.Add(arrayValue[1]); 172
} 173
} 174
175
if (displayNames.Count > 0) 176
{ 177
178
string returnValues = string.Format("new Array(\"{0}\",\"{1}\")", string.Join(",", displayNames.ToArray()), string.Join(",", userNames.ToArray())); 179
string closeScript = string.Format("<script language=\"javascript\">{0}</script>", TunyNet.Web.UI.Modal.GetCloseScript(this.Page, returnValues)); 180
Page.ClientScript.RegisterStartupScript(this.GetType(), this.GetType().FullName, closeScript); 181
} 182
else 183
{ 184
ModalHelper.ClosePage(this.Page); 185
} 186
} 187
188
189
void CancelButton_Click(object sender, EventArgs e) 190
{ 191
ModalHelper.ClosePage(this.Page); 192
} 193
194
195
} 196
} 197





}