⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manageusersadmin.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 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 + -