📄 manageranksadmin.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 + -