📄 managenamesadmin.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
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 ManageNamesAdmin : TemplatedWebControl {
#region Child Controls
DataList ManageNames;
#endregion
#region Skin
protected override void AttachChildControls() {
ManageNames = (DataList)FindControl( "ManageNames" );
InitializeChildControls();
}
private void InitializeChildControls() {
ManageNames.ItemDataBound += new DataListItemEventHandler(ManageNames_ItemDataBound);
ManageNames.EditCommand += new DataListCommandEventHandler( ManageNames_EditCommand);
ManageNames.CancelCommand += new DataListCommandEventHandler( ManageNames_CancelCommand);
ManageNames.DeleteCommand += new DataListCommandEventHandler( ManageNames_DeleteCommand);
ManageNames.UpdateCommand += new DataListCommandEventHandler( ManageNames_UpdateCommand);
ManageNames.ItemCommand += new DataListCommandEventHandler( ManageNames_ItemCommand);
}
#endregion
#region Properties
public string SelectedName {
get {
Object state = ViewState[ "SelectedName" ];
if ( state != null ) {
return (String)state;
}
return "";
}
set {
ViewState[ "SelectedName" ] = value;
}
}
#endregion
#region Command Handlers
private void ManageNames_ItemCommand(object source, DataListCommandEventArgs e) {
if(e.CommandName == "Create") {
CreateName( e );
}
}
private void ManageNames_EditCommand(object source, DataListCommandEventArgs e) {
EditName( e );
}
private void ManageNames_DeleteCommand(object source, DataListCommandEventArgs e) {
this.DeleteName( e );
}
private void ManageNames_UpdateCommand(object source, DataListCommandEventArgs e) {
UpdateName( e );
}
private void ManageNames_CancelCommand(object source, DataListCommandEventArgs e) {
CancelEditName( e );
}
#endregion
#region Command Implementations
protected virtual void CreateName( DataListCommandEventArgs e ) {
// Validate what it is needed
this.DisableValidators();
RequiredFieldValidator createrRequiredVal = (RequiredFieldValidator)e.Item.FindControl("addNameReqFVldt");
RegularExpressionValidator createRegexVal = (RegularExpressionValidator)e.Item.FindControl("addNameRegExVldt");
if ( createrRequiredVal == null || createRegexVal == null ) {
return;
}
createrRequiredVal.Validate();
createRegexVal.Validate();
if ( !createrRequiredVal.IsValid || !createRegexVal.IsValid ) {
return;
}
// Find input control
TextBox nameEditor = (TextBox)e.Item.FindControl("BannedName");
if ( nameEditor == null ) {
return;
}
// Get input value
string newName = nameEditor.Text.Trim();
DisallowedNames.CreateName( newName );
ManageNames.EditItemIndex = -1;
UpdateList();
}
protected virtual void EditName( DataListCommandEventArgs e ) {
// Get selected index
ManageNames.EditItemIndex = e.Item.ItemIndex;
// Set current name for selection. This will be changed on Update.
this.SelectedName = ((ArrayList)ManageNames.DataSource)[e.Item.ItemIndex].ToString();
ManageNames.DataBind();
}
protected virtual void DeleteName( DataListCommandEventArgs e ) {
// Get name from datasource
string name = ((ArrayList)ManageNames.DataSource)[e.Item.ItemIndex].ToString();
// Delete it from datastore
DisallowedNames.DeleteName( name );
// Reset datalist
ManageNames.EditItemIndex = -1;
UpdateList();
}
protected virtual void UpdateName( DataListCommandEventArgs e ) {
// Validate what it is needed
this.DisableValidators();
RequiredFieldValidator updaterRequiredVal = (RequiredFieldValidator)e.Item.FindControl("editNameReqFVldt");
RegularExpressionValidator updaterRegexVal = (RegularExpressionValidator)e.Item.FindControl("editNameRegExVldt");
if ( updaterRequiredVal == null || updaterRegexVal == null ) {
return;
}
updaterRequiredVal.Validate();
updaterRegexVal.Validate();
if ( !updaterRequiredVal.IsValid || !updaterRegexVal.IsValid ) {
return;
}
// Find input control
TextBox nameEditor = (TextBox)e.Item.FindControl("Name");
if ( nameEditor == null ) {
return;
}
// Get input value
string newName = nameEditor.Text.Trim();
// Exit if no real changes
if ( newName == this.SelectedName ) {
// Reset datalist
ManageNames.EditItemIndex = -1;
ManageNames.DataBind();
return;
}
// Update it in datastore
DisallowedNames.UpdateName( newName, this.SelectedName );
// Reset datalist
this.SelectedName = "";
ManageNames.EditItemIndex = -1;
this.UpdateList();
}
protected virtual void CancelEditName( DataListCommandEventArgs e ) {
this.SelectedName = "";
ManageNames.EditItemIndex = -1;
ManageNames.DataBind();
}
#endregion
private void DisableValidators() {
IEnumerator tmpEnum = this.Page.Validators.GetEnumerator();
while(tmpEnum.MoveNext()) {
((IValidator) tmpEnum.Current).IsValid = true;
}
}
protected override void OnLoad(EventArgs e) {
this.EnsureChildControls();
ManageNames.DataSource = DisallowedNames.GetNames();
if ( !Page.IsPostBack ) {
this.DataBind();
}
base.OnLoad( e );
}
public override void DataBind(){
base.DataBind();
ManageNames.DataBind();
}
private void UpdateList() {
ManageNames.DataSource = DisallowedNames.GetNames();
ManageNames.DataBind();
}
private void ManageNames_ItemDataBound(object sender, DataListItemEventArgs e) {
switch ( e.Item.ItemType ) {
case ListItemType.Item:
case ListItemType.AlternatingItem:
Label NameLabel = (Label)e.Item.FindControl( "NameLabel" );
NameLabel.Text = Convert.ToString( e.Item.DataItem );
Button Edit = (Button)e.Item.FindControl( "Edit" );
Edit.Text = ResourceManager.GetString("Edit");
Button Delete = (Button)e.Item.FindControl( "Delete" );
Delete.Text = ResourceManager.GetString("Delete");
break;
case ListItemType.EditItem:
TextBox Name = (TextBox)e.Item.FindControl( "Name" );
Name.Text = Convert.ToString( e.Item.DataItem );
RequiredFieldValidator editNameReqFVldt = (RequiredFieldValidator)e.Item.FindControl( "editNameReqFVldt" );
editNameReqFVldt.ErrorMessage = ResourceManager.GetString("ManageNames_ReqFieldValidator");
RegularExpressionValidator editNameRegExVldt = (RegularExpressionValidator)e.Item.FindControl( "editNameRegExVldt" );
editNameRegExVldt.ErrorMessage = ResourceManager.GetString("ManageNames_RegExValidator");
Button Update = (Button)e.Item.FindControl( "Update" );
Update.Text = ResourceManager.GetString("Update");
Button Cancel = (Button)e.Item.FindControl( "Cancel" );
Cancel.Text = ResourceManager.GetString("Cancel");
break;
case ListItemType.Footer:
RequiredFieldValidator addNameReqFVldt = (RequiredFieldValidator)e.Item.FindControl( "addNameReqFVldt" );
addNameReqFVldt.ErrorMessage = ResourceManager.GetString("ManageNames_ReqFieldValidator");
RegularExpressionValidator addNameRegExVldt = (RegularExpressionValidator)e.Item.FindControl( "addNameRegExVldt" );
addNameRegExVldt.ErrorMessage = ResourceManager.GetString("ManageNames_RegExValidator");
Button Create = (Button)e.Item.FindControl( "Create" );
Create.Text = ResourceManager.GetString("Create");
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -