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

📄 projectdetails.aspx.cs

📁 asp.net办公自动化实例导航——非常经典的OA源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
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 + -