📄 manageusersadmin.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
// 修改说明:显示昵称
// 修改人:宝玉
// 修改日期:2005-02-26
using System;
using System.ComponentModel;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using CommunityServer;
using CommunityServer.Components;
namespace CommunityServer.Controls
{
public class ManageUsersAdmin : TemplatedWebControl {
#region Child Controls
private Repeater UserList;
private AccountStatusDropDownList CurrentAccountStatus;
private MemberSortDropDownList Sort;
private SortOrderDropDownList SortOrder;
private TextBox SearchForUser;
private Button SearchButton;
private Pager pager;
private CurrentPage currentPage;
private AlphaPicker alphaPicker;
private HtmlTableCell headerCountersColumn;
private HtmlTableCell countersColumn;
private HtmlTableCell altCountersColumn;
private bool enableModerationCounters = false;
#endregion
#region Public properties
[
Category( "Appearance" ),
DefaultValue( true ),
]
public virtual Boolean EnableAlphaPicker {
get {
Object state = ViewState["EnableAlphaPicker"];
if ( state != null ) {
return (Boolean)state;
}
return true;
}
set {
ViewState["EnableAlphaPicker"] = value;
}
}
#endregion
#region Private properties
// *********************************************************************
// IsSearchMode
//
/// <summary>
/// Private property to determine if we're in search mode or doing a linear
/// walkthrough of users
/// </summary>
///
// ********************************************************************/
protected bool IsSearchMode {
get {
if (ViewState["SearchMode"] == null)
return false;
return (bool) ViewState["SearchMode"];
}
set {
ViewState["SearchMode"] = value;
}
}
// *********************************************************************
// SearchText
//
/// <summary>
/// Private property u
/// </summary>
///
// ********************************************************************/
protected string SearchText {
get {
return (string) ViewState["SearchText"];
}
set {
ViewState["SearchText"] = value;
}
}
#endregion
#region Child Control Event Handlers
/// <summary>
/// Event raised when searching for a user
/// </summary>
private void Search_Click(Object sender, EventArgs e) {
//CSContext.Current.Context.Response.Redirect( Globals.GetSiteUrls().AdminManageUsers( SearchForUser.Text ));
CSContext.Current.Context.Response.Redirect( Globals.GetSiteUrls().SearchForUserAdmin( SearchForUser.Text ));
CSContext.Current.Context.Response.End();
}
/// <summary>
/// Event raised when the filter conditions set during post-back change
/// </summary>
private void FilterChanged_Click(Object sender, EventArgs e) {
// Do we have search text?
if (SearchForUser.Text == "")
IsSearchMode = false;
// Reset the pager
//
pager.PageIndex = 0;
currentPage.PageIndex = 0;
DataBind();
}
#endregion
#region Skin
protected override String ExternalSkinFileName {
get {
return "Skin-ManageMembers.ascx";
}
}
protected override void AttachChildControls() {
UserList = (Repeater)FindControl( "UserList") ;
CurrentAccountStatus = (AccountStatusDropDownList)FindControl( "CurrentAccountStatus" );
Sort = (MemberSortDropDownList)FindControl( "Sort" );
SortOrder = (SortOrderDropDownList)FindControl( "SortOrder" );
SearchForUser = (TextBox)FindControl( "SearchForUser" );
SearchButton = (Button)FindControl( "SearchButton" );
currentPage = (CurrentPage)FindControl( "CurrentPage" );
pager = (Pager)FindControl( "Pager" );
alphaPicker = (AlphaPicker)FindControl("AlphaPicker");
InitializeChildControls();
}
private void InitializeChildControls() {
UserList.ItemDataBound += new RepeaterItemEventHandler(UserList_ItemDataBound);
CurrentAccountStatus.AutoPostBack = true;
CurrentAccountStatus.SelectedIndexChanged += new EventHandler( FilterChanged_Click );
Sort.AutoPostBack = true;
Sort.SelectedIndexChanged += new EventHandler( FilterChanged_Click );
SortOrder.AutoPostBack = true;
SortOrder.SelectedIndexChanged += new EventHandler( FilterChanged_Click );
alphaPicker.Visible = this.EnableAlphaPicker;
alphaPicker.Letter_Changed += new EventHandler( FilterChanged_Click );
pager.PageSize = CSContext.Current.SiteSettings.MembersPerPage;
SearchButton.Text = ResourceManager.GetString("ForumMembers_SearchButton");
SearchButton.Click += new EventHandler( Search_Click );
// Do we have search text?
if ( !Page.IsPostBack && CSContext.Current.QueryText != null ) {
SearchText = CSContext.Current.QueryText;
IsSearchMode = true;
}
}
#endregion
protected override void OnLoad(EventArgs e) {
enableModerationCounters = CSContext.Current.SiteSettings.EnableUserModerationCounters;
if ( !Page.IsPostBack ) {
this.DataBind();
}
base.OnLoad( e );
}
public override void DataBind(){
base.DataBind();
String usernameFilter = "";
bool includeEmailInFilter = false;
if ( IsSearchMode ) {
if ( SearchForUser.Text.Length == 0 ) {
SearchForUser.Text = SearchText;
} else {
SearchText = SearchForUser.Text;
}
usernameFilter = SearchText;
includeEmailInFilter = true;
} else {
usernameFilter = alphaPicker.SelectedLetter;
}
// Get the filter parameter, if not on a postback
if(!Page.IsPostBack && (Context.Request.QueryString["filter"] != null))
CurrentAccountStatus.SelectedValue = (UserAccountStatus) Enum.Parse( typeof(UserAccountStatus), Context.Request.QueryString["filter"]);
UserSet userSet = Users.GetUsers( pager.PageIndex, pager.PageSize, Sort.SelectedSortOrder, SortOrder.SelectedValue, usernameFilter, includeEmailInFilter, true, this.CurrentAccountStatus.SelectedValue, true, true );
UserList.DataSource = userSet.Users;
UserList.DataBind();
pager.TotalRecords = currentPage.TotalRecords = userSet.TotalRecords;
currentPage.TotalPages = pager.CalculateTotalPages();
currentPage.PageIndex = pager.PageIndex;
}
private void UserList_ItemDataBound( Object sender, RepeaterItemEventArgs e ) {
User dataItem = (User)e.Item.DataItem;
switch ( e.Item.ItemType ) {
case ListItemType.Header:
headerCountersColumn = (HtmlTableCell) e.Item.FindControl( "HeaderCountersColumn" );
if (headerCountersColumn != null) {
if (enableModerationCounters)
headerCountersColumn.Visible = true;
else
headerCountersColumn.Visible = false;
}
break;
case ListItemType.Item:
countersColumn = (HtmlTableCell) e.Item.FindControl( "CountersColumn" );
if (countersColumn != null) {
if (enableModerationCounters) {
countersColumn.Visible = true;
Label ItemModerationCounters = (Label)e.Item.FindControl( "ItemModerationCounters" );
ItemModerationCounters.Text = Formatter.FormatUserAuditCounters( dataItem.UserID, dataItem.AuditCounters );
}
else {
countersColumn.Visible = false;
}
}
HyperLink ItemUsernameLink = (HyperLink)e.Item.FindControl( "ItemUsernameLink" );
ItemUsernameLink.NavigateUrl = Globals.GetSiteUrls().AdminUserEdit( dataItem.UserID );
ItemUsernameLink.Text = dataItem.Username + "(" + dataItem.Nickname + ")"; // 显示昵称
HyperLink ItemEmailLink = (HyperLink)e.Item.FindControl( "ItemEmailLink" );
ItemEmailLink.NavigateUrl = "mailto:" + dataItem.Email;
ItemEmailLink.Text = dataItem.Email;
HyperLink ItemPasswordLink = (HyperLink)e.Item.FindControl( "ItemPasswordLink" );
ItemPasswordLink.NavigateUrl = Globals.GetSiteUrls().AdminUserPasswordChange( dataItem.UserID );
ItemPasswordLink.Text = ResourceManager.GetString("UserAdmin_PasswordReset");
HyperLink ItemRolesLink = (HyperLink)e.Item.FindControl( "ItemRolesLink" );
ItemRolesLink.NavigateUrl = Globals.GetSiteUrls().AdminUserRoles( dataItem.UserID );
ItemRolesLink.Text = ResourceManager.GetString("UserAdmin_RolesAddRemove");
Label ItemTotalPosts = (Label)e.Item.FindControl( "ItemTotalPosts" );
ItemTotalPosts.Text = Formatter.FormatNumber( dataItem.TotalPosts );
UserImageButtons ItemSearchButton = (UserImageButtons)e.Item.FindControl( "ItemSearchButton" );
ItemSearchButton.User = dataItem;
break;
case ListItemType.AlternatingItem:
altCountersColumn = (HtmlTableCell) e.Item.FindControl( "AltCountersColumn" );
if (altCountersColumn != null) {
if (enableModerationCounters) {
altCountersColumn.Visible = true;
Label AltItemModerationCounters = (Label)e.Item.FindControl( "AltItemModerationCounters" );
AltItemModerationCounters.Text = Formatter.FormatUserAuditCounters( dataItem.UserID, dataItem.AuditCounters );
}
else {
altCountersColumn.Visible = false;
}
}
HyperLink AltItemUsernameLink = (HyperLink)e.Item.FindControl( "AltItemUsernameLink" );
AltItemUsernameLink.NavigateUrl = Globals.GetSiteUrls().AdminUserEdit( dataItem.UserID );
AltItemUsernameLink.Text = dataItem.Username + "(" + dataItem.Nickname + ")"; // 显示昵称
HyperLink AltItemEmailLink = (HyperLink)e.Item.FindControl( "AltItemEmailLink" );
AltItemEmailLink.NavigateUrl = "mailto:" + dataItem.Email;
AltItemEmailLink.Text = dataItem.Email;
HyperLink AltItemPasswordLink = (HyperLink)e.Item.FindControl( "AltItemPasswordLink" );
AltItemPasswordLink.NavigateUrl = Globals.GetSiteUrls().AdminUserPasswordChange( dataItem.UserID );
AltItemPasswordLink.Text = ResourceManager.GetString("UserAdmin_PasswordReset");
HyperLink AltItemRolesLink = (HyperLink)e.Item.FindControl( "AltItemRolesLink" );
AltItemRolesLink.NavigateUrl = Globals.GetSiteUrls().AdminUserRoles( dataItem.UserID );
AltItemRolesLink.Text = ResourceManager.GetString("UserAdmin_RolesAddRemove");
HyperLink AltItemTotalPosts = (HyperLink)e.Item.FindControl( "AltItemTotalPosts" );
AltItemTotalPosts.Text = Formatter.FormatNumber( dataItem.TotalPosts );
UserImageButtons AltItemSearchButton = (UserImageButtons)e.Item.FindControl( "AltItemSearchButton" );
AltItemSearchButton.User = dataItem;
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -