?? projectdetails.aspx.cs
字號:
using System;
using System.Web;
using System.Web.UI.WebControls;
using qminoa.BLL.PM;
namespace qminoa.Webs.PM
{
public class ProjectDetails : qminoa.Webs.PageBase
{
public const string UserRoleNone = "0";
public const string UserRoleAdministrator = "1";
public const string UserRoleProjectManager = "2";
public const string UserRoleConsultant = "3";
protected System.Web.UI.WebControls.TextBox ProjectName;
protected System.Web.UI.WebControls.TextBox Description;
protected System.Web.UI.WebControls.TextBox CompletionDate;
protected System.Web.UI.WebControls.TextBox Duration;
protected System.Web.UI.WebControls.ListBox Members;
protected System.Web.UI.WebControls.Button CopyButton;
protected System.Web.UI.WebControls.Button AddButton;
protected System.Web.UI.WebControls.Button SaveButton;
protected System.Web.UI.WebControls.DropDownList Managers;
protected System.Web.UI.WebControls.DropDownList Projects;
protected System.Web.UI.WebControls.TextBox CategoryName;
protected System.Web.UI.WebControls.TextBox Abbrev;
protected System.Web.UI.WebControls.TextBox CatDuration;
protected System.Web.UI.WebControls.DataGrid CategoriesGrid;
protected System.Web.UI.WebControls.RequiredFieldValidator ProjectNameRequiredfieldvalidator;
protected System.Web.UI.WebControls.RequiredFieldValidator ManagerRequiredFieldValidator;
protected System.Web.UI.WebControls.CompareValidator CompletionDateCompareValidator;
protected System.Web.UI.WebControls.RequiredFieldValidator CompletionDateRequiredFieldValidator;
protected System.Web.UI.WebControls.CompareValidator DurationCompareValidator;
protected System.Web.UI.WebControls.RequiredFieldValidator DurationRequiredFieldValidator;
protected System.Web.UI.WebControls.CustomValidator ProjectsGridCustomValidator;
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidatorAbbrev;
protected System.Web.UI.WebControls.CompareValidator CatDurationValidator;
protected System.Web.UI.WebControls.CustomValidator AbbrevCustomValidator;
protected System.Web.UI.WebControls.Button CancelButton;
protected System.Web.UI.WebControls.Button CancelButton2;
protected System.Web.UI.WebControls.Button CancelButton3;
protected System.Web.UI.WebControls.Button DeleteButton;
protected System.Web.UI.WebControls.Button DeleteButton2;
protected System.Web.UI.WebControls.Button SaveButton2;
protected System.Web.UI.WebControls.RangeValidator RangeValidator1;
protected System.Web.UI.WebControls.RangeValidator RangeValidator2;
protected System.Web.UI.WebControls.Label CategoryErrorMessage;
protected System.Web.UI.WebControls.Label ErrorMessage;
private int _projID;
private PMUser _user;
private void Page_Load(object sender, System.EventArgs e)
{
this.PageBegin("項目管理",true);
_user = new PMUser(Convert.ToInt16(this.Empid));
if(_user.Role == UserRoleConsultant || _user.Role == UserRoleNone)
{
Response.Redirect(Application["vRoot"]+"/login.aspx");
}
_projID = (Request.QueryString["id"]==null) ? 0 : Convert.ToInt32(Request.QueryString["id"]);
if (!IsPostBack)
{
Session["catArray"] = new CategoriesCollection();
BindManagers();
BindMembers();
BindOtherProjects();
if (_projID != 0)
BindProject();
}
DeleteButton.Attributes.Add("onclick", "return confirm('刪除該項目將刪除和該項目相關的進程信息和進程日志信息,確定要刪除嗎?')");
DeleteButton2.Attributes.Add("onclick", "return confirm('刪除該項目將刪除和該項目相關的進程信息和進程日志信息,確定要刪除嗎?')");
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click);
this.CancelButton.Click += new System.EventHandler(this.CancelButton_Click);
this.DeleteButton.Click += new System.EventHandler(this.DeleteButton_Click);
this.AddButton.Click += new System.EventHandler(this.AddButton_Click);
this.AbbrevCustomValidator.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.AbbrevCustomValidator_ServerValidate);
this.CopyButton.Click += new System.EventHandler(this.CopyButton_Click);
this.CategoriesGrid.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.CategoriesGrid_ItemCreated);
this.CategoriesGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.CategoriesGrid_Sort);
this.ProjectsGridCustomValidator.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.ValidateCategories);
this.SaveButton2.Click += new System.EventHandler(this.SaveButton_Click);
this.CancelButton2.Click += new System.EventHandler(this.CancelButton_Click);
this.DeleteButton2.Click += new System.EventHandler(this.DeleteButton_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void BindManagers()
{
Managers.DataSource = PMUser.ListManagers();
Managers.DataValueField = "UserID";
Managers.DataTextField = "UserName";
Managers.DataBind();
Managers.Items.Insert(0, new ListItem("選擇項目經理...", String.Empty));
}
private void BindMembers()
{
Members.DataSource = PMUser.GetAllUsers(_user.UserID);
Members.DataValueField = "UserID";
Members.DataTextField = "UserName";
Members.DataBind();
}
private void BindOtherProjects()
{
Projects.DataSource = Project.GetProjects();
Projects.DataTextField = "Name";
Projects.DataValueField = "ProjectID";
Projects.DataBind();
Projects.Items.Remove(Projects.Items.FindByValue(_projID.ToString()));
if (Projects.Items.Count == 0)
CopyButton.Enabled = false;
}
private void BindProject()
{
Project project = new Project(_projID);
project.Load();
ProjectName.Text = project.Name;
Description.Text = project.Description;
CompletionDate.Text = project.EstCompletionDate.ToShortDateString();
Duration.Text = project.EstDuration.ToString();
Managers.Items.FindByValue(project.ManagerUserID.ToString()).Selected = true;
foreach (PMUser user in project.Members)
{
Members.Items.FindByValue(user.UserID.ToString()).Selected = true;
}
BindCategoriesGrid(project.Categories);
}
private void BindCategoriesGrid(CategoriesCollection cats)
{
SortGridData(cats, SortField, SortAscending);
CategoriesGrid.DataSource = cats;
CategoriesGrid.DataBind();
Session["catArray"] = cats;
}
private void ReturnToProjectList()
{
Session["catArray"] = null;
Response.Redirect("ProjectList.aspx", false);
}
private void SortGridData(CategoriesCollection list, string sortField, bool asc)
{
CategoriesCollection.CategoryFields sortCol = CategoriesCollection.CategoryFields.InitValue;
switch(sortField)
{
case "Name":
sortCol = CategoriesCollection.CategoryFields.Name;
break;
case "Abbrev":
sortCol = CategoriesCollection.CategoryFields.Abbreviation;
break;
case "Duration":
sortCol = CategoriesCollection.CategoryFields.Duration;
break;
}
list.Sort(sortCol, asc);
}
private void CancelButton_Click(object sender, System.EventArgs e)
{
ReturnToProjectList();
}
private void DeleteButton_Click(object sender, System.EventArgs e)
{
Project.Remove(_projID);
ReturnToProjectList();
}
private void SaveButton_Click(object sender, System.EventArgs e)
{
Members.Items.FindByValue(Managers.SelectedItem.Value).Selected = true;
ProjectsGridCustomValidator.Validate();
if (!ProjectsGridCustomValidator.IsValid)
return;
AbbrevCustomValidator.Validate();
if (!AbbrevCustomValidator.IsValid)
return;
CategoriesCollection catArray = (CategoriesCollection)Session["catArray"];
UsersCollection selectedMembers = new UsersCollection();
foreach (ListItem li in Members.Items)
{
if (li.Selected)
{
PMUser user = new PMUser();
user.UserID = Convert.ToInt32(li.Value);
selectedMembers.Add(user);
}
}
Project prj = new Project(
_projID,
ProjectName.Text,
Description.Text,
Convert.ToInt32(Managers.SelectedItem.Value),
Convert.ToDateTime(CompletionDate.Text),
Convert.ToDecimal(Duration.Text)
);
prj.Categories = catArray;
prj.Members = selectedMembers;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -