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

📄 manageranksadmin.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 CS
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using CommunityServer;
using CommunityServer.Components;


namespace CommunityServer.Controls {

	public class ManageRanksAdmin : TemplatedWebControl {

		#region Child Controls

		DataList ManageRanks;

		#endregion

		#region Skin


		protected override void AttachChildControls() {

			ManageRanks = (DataList)FindControl( "ManageRanks" );

			InitializeChildControls();
		}

		private void InitializeChildControls() {
			ManageRanks.DataKeyField = "RankID";

			ManageRanks.ItemDataBound += new DataListItemEventHandler(ManageRanks_ItemDataBound);

			ManageRanks.EditCommand += new DataListCommandEventHandler(ManageRanks_EditCommand);
			ManageRanks.CancelCommand += new DataListCommandEventHandler(ManageRanks_CancelCommand);
			ManageRanks.DeleteCommand += new DataListCommandEventHandler(ManageRanks_DeleteCommand);
			ManageRanks.UpdateCommand += new DataListCommandEventHandler(ManageRanks_UpdateCommand);
			ManageRanks.ItemCommand += new DataListCommandEventHandler(ManageRanks_ItemCommand);
		}

		#endregion

		#region Command Handlers

		private void ManageRanks_EditCommand(object source, DataListCommandEventArgs e) {
			this.ManageRanks.EditItemIndex = e.Item.ItemIndex;
			BindRanks();
		}

		private void ManageRanks_CancelCommand(object source, DataListCommandEventArgs e) {
			this.ManageRanks.EditItemIndex = -1;
			BindRanks();
		}

		private void ManageRanks_DeleteCommand(object source, DataListCommandEventArgs e) {
			DeleteRank( e );
		}

		private void ManageRanks_UpdateCommand(object source, DataListCommandEventArgs e) {
			UpdateRank( e );
		}

		private void ManageRanks_ItemCommand(object source, DataListCommandEventArgs e) {
			if( e.CommandName == "Create" ) {
				CreateRank( e );
			}
		}

		#endregion

		#region Command Implementations

		protected virtual void DeleteRank( DataListCommandEventArgs e ) {
			Int32 RankID = Convert.ToInt32( this.ManageRanks.DataKeys[ e.Item.ItemIndex ] );
			Rank currentRank = GetRank( RankID );
			
			Ranks.DeleteRank( currentRank );

			this.ManageRanks.EditItemIndex = -1;
			this.BindRanks();
		}

		protected virtual void UpdateRank( DataListCommandEventArgs e ) {
			TextBox RankName = (TextBox)e.Item.FindControl("RankName");
			TextBox RankMinPost = (TextBox)e.Item.FindControl("RankMinPost");
			TextBox RankMaxPost = (TextBox)e.Item.FindControl("RankMaxPost");
			TextBox	RankIconUrl = (TextBox)e.Item.FindControl("RankIconUrl");

			RequiredFieldValidator RankNameValidator = (RequiredFieldValidator)e.Item.FindControl("RankNameValidator");
			RequiredFieldValidator RankMinPostValidator = (RequiredFieldValidator)e.Item.FindControl("RankMinPostValidator");
			RequiredFieldValidator RankMaxPostValidator = (RequiredFieldValidator)e.Item.FindControl("RankMaxPostValidator");

            RankNameValidator.Enabled = true;
			RankMinPostValidator.Enabled = true;
			RankMaxPostValidator.Enabled = true;

			if ( RankName == null || RankMinPost == null || RankMaxPost == null || RankIconUrl == null ) 
			{
				return;
			}

			Page.Validate();

			// Check that the fields were populated
			if(RankName.Text.Trim() == string.Empty)
				RankNameValidator.IsValid = false;
			if(RankMinPost.Text.Trim() == string.Empty)
				RankMinPostValidator.IsValid = false;
			if(RankMaxPost.Text.Trim() == string.Empty)
				RankMaxPostValidator.IsValid = false;

			Int32 RankID = Convert.ToInt32( this.ManageRanks.DataKeys[ e.Item.ItemIndex ] );
			Rank currentRank = GetRank( RankID );

			// Update settings
			currentRank.RankName = RankName.Text.Trim();
			currentRank.RankIconUrl = RankIconUrl.Text.Trim();

			// Make sure the counts are integers
			try { currentRank.PostingCountMinimum = Int32.Parse( RankMinPost.Text ); }
			catch { RankMinPostValidator.IsValid = false; }
			try { currentRank.PostingCountMaximum = Int32.Parse( RankMaxPost.Text ); }
			catch { RankMaxPostValidator.IsValid = false; }

			// Make sure max is greater than min
			if(currentRank.PostingCountMinimum >= currentRank.PostingCountMaximum)
				RankMaxPostValidator.IsValid = false;

			// Update only if it is valid
			if(Page.IsValid)
			{
				Ranks.UpdateRank( currentRank );
				ManageRanks.EditItemIndex = -1;
				BindRanks();
			}
		}

		protected virtual void CreateRank( DataListCommandEventArgs e ) {
			TextBox NewRankName	= (TextBox)e.Item.FindControl("NewRankName");
			TextBox NewRankMinPost	= (TextBox)e.Item.FindControl("NewRankMinPost");
			TextBox NewRankCountMax = (TextBox)e.Item.FindControl("NewRankMaxPost");
			TextBox NewRankIconUrl	= (TextBox)e.Item.FindControl("NewRankIconUrl");

			RequiredFieldValidator NewRankNameValidator = (RequiredFieldValidator)e.Item.FindControl("NewRankNameValidator");
			RequiredFieldValidator NewRankMinPostValidator = (RequiredFieldValidator)e.Item.FindControl("NewRankMinPostValidator");
			RequiredFieldValidator NewRankMaxPostValidator = (RequiredFieldValidator)e.Item.FindControl("NewRankMaxPostValidator");

			NewRankNameValidator.Enabled = true;
			NewRankMinPostValidator.Enabled = true;
			NewRankMaxPostValidator.Enabled = true;

			if ( NewRankName == null || NewRankMinPost == null || NewRankCountMax == null || NewRankIconUrl == null ) 
			{
				return;
			}

			Page.Validate();

			// Check that the fields were populated
			if(NewRankName.Text.Trim() == string.Empty)
				NewRankNameValidator.IsValid = false;
			if(NewRankMinPost.Text.Trim() == string.Empty)
				NewRankMinPostValidator.IsValid = false;
			if(NewRankCountMax.Text.Trim() == string.Empty)
				NewRankMaxPostValidator.IsValid = false;

			// Check for a rank with a duplicate name
			System.Collections.ArrayList ranks = Ranks.GetRanks();
			foreach(Rank rank in ranks)
			{
				if(rank.RankName == NewRankName.Text.Trim())
				{
					NewRankNameValidator.IsValid = false;
					break;
				}
			}

			int minPosts = 0;
			int maxPosts = 0;

			// Make sure min is a number
			try { minPosts = int.Parse( NewRankMinPost.Text ); }
			catch { NewRankMinPostValidator.IsValid = false; }

			// Make sure max is a number
			try { maxPosts = int.Parse( NewRankCountMax.Text); }
			catch { NewRankMaxPostValidator.IsValid = false; }

			// Make sure max is greater than min
			if(minPosts >= maxPosts)
				NewRankMaxPostValidator.IsValid = false;

			if(Page.IsValid)
			{
				Rank newRank = new Rank( 0, NewRankName.Text.Trim(), minPosts, maxPosts, NewRankIconUrl.Text.Trim() );
				Ranks.CreateRank( newRank );
				BindRanks();
			}
		}

		#endregion

		private Rank GetRank( Int32 rankID ) {
			System.Collections.ArrayList ranks = Ranks.GetRanks(false);
			foreach( Rank rank in ranks ) {
				if ( rank.RankId == rankID ) {
					return rank;
				}
			}
			return null;
		}

		protected override void OnLoad(EventArgs e) {
			if ( !Page.IsPostBack ) {
				this.DataBind();
			}
			base.OnLoad( e );
		}

		public override void DataBind(){
			base.DataBind();

			BindRanks();
		}

		private void BindRanks() {
			ManageRanks.DataSource = Ranks.GetRanks(false);
			ManageRanks.DataBind();

			foreach(BaseValidator val in Page.Validators)
				val.Enabled = false;
		}

		private void ManageRanks_ItemDataBound(object sender, DataListItemEventArgs e) {
			Rank dataItem = e.Item.DataItem as Rank;

			switch( e.Item.ItemType ) {
				case ListItemType.Item:
				case ListItemType.AlternatingItem:
					
					Label RankName = (Label)e.Item.FindControl( "RankName" );
					Label PostingCountMinimum = (Label)e.Item.FindControl( "PostingCountMinimum" );
					Label PostingCountMaximum = (Label)e.Item.FindControl( "PostingCountMaximum" );
					Image RankIcon = (Image)e.Item.FindControl( "RankIcon" );
					Button EditRank = (Button)e.Item.FindControl( "EditRank" );
					Button DeleteRank = (Button)e.Item.FindControl( "DeleteRank" );

					RankName.Text = dataItem.RankName;
					PostingCountMinimum.Text = dataItem.PostingCountMinimum.ToString( ResourceManager.GetString("NumberFormat") );
					PostingCountMaximum.Text = dataItem.PostingCountMaximum.ToString( ResourceManager.GetString("NumberFormat") );
					RankIcon.AlternateText = dataItem.RankIconUrl;
					RankIcon.ImageUrl = Globals.GetSkinPath() + "/images/" + dataItem.RankIconUrl;

					EditRank.Text = ResourceManager.GetString( "Edit" );
					DeleteRank.Text = ResourceManager.GetString( "Delete" );
					

					break;
				case ListItemType.EditItem:

					TextBox EditRankName = (TextBox)e.Item.FindControl( "RankName" );
					TextBox EditPostingCountMinimum = (TextBox)e.Item.FindControl( "RankMinPost" );
					TextBox EditPostingCountMaximum = (TextBox)e.Item.FindControl( "RankMaxPost" );
					TextBox EditIconUrl = (TextBox)e.Item.FindControl( "RankIconUrl" );
					Button UpdateRank = (Button)e.Item.FindControl( "UpdateRank" );
					Button CancelRank = (Button)e.Item.FindControl( "CancelRank" );

					EditRankName.Text = dataItem.RankName;
					EditPostingCountMinimum.Text = dataItem.PostingCountMinimum.ToString();
					EditPostingCountMaximum.Text = dataItem.PostingCountMaximum.ToString();
					EditIconUrl.Text = dataItem.RankIconUrl;
					UpdateRank.Text = ResourceManager.GetString( "Update" );
					CancelRank.Text = ResourceManager.GetString( "Cancel" );

					break;
				case ListItemType.Footer:

					Button CreateRank = (Button)e.Item.FindControl( "CreateRank" );
					CreateRank.Text = ResourceManager.GetString( "Create" );
					break;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -