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

📄 mailbox.aspx.cs

📁 内部邮件管理系统
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using MailAdmin.BLL ;
using MailAdmin.DAL ;
using MailAdmin.COMMON ;

namespace MailAdmin.USL
{
	/// <summary>
	/// MailBox 的摘要说明。
	/// </summary>
	public class MailBox : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label l_Title;
		protected System.Web.UI.WebControls.Label l_Dsc;
		protected System.Web.UI.WebControls.Button bRecycle;
		protected System.Web.UI.WebControls.Button bDelete;
		protected System.Web.UI.WebControls.Button bRevert;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_ID;
		protected System.Web.UI.WebControls.DataGrid dg;
		private Usr usr = null ;
		protected System.Web.UI.WebControls.CheckBox cb_Select;
		protected System.Web.UI.WebControls.Button b_Read;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_Type;
		private DataTable dtMailBox = null ;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			//登录用户
			usr = MailAdminGlobals.LoginUsr ;			
			if(usr == null)
			{
				//页面重定向到登录页面
				string url="Login.aspx" ;
				Page.Response.Redirect(url) ;
				return ;
			}

			//文件夹列表
			dtMailBox = (DataTable)Session["dtMailBox"] ;
			if(dtMailBox==null)
			{
				dtMailBox = new DataTable() ;
			}
		
			if(!IsPostBack)
			{
				//从URL中获取打开类型
				string type = CommHandler.GetRequest(Page,"Type") ;	
				h_Type.Value = type ;
				InitPG(type) ;
			}

		}

		private void InitPG(string type)
		{
			InitSendBox(type) ;
			switch(type)
			{
				case "0":
					this.l_Title.Text = "收件箱" ;
					this.l_Dsc.Text = " -查看收件箱内容" ;
					this.dg.Columns[4].Visible = true ;
					this.bRevert.Visible = false ;
					break;
				case "1":
					this.l_Title.Text = "发件箱" ;
					this.l_Dsc.Text = " -查看发件箱内容" ;
					this.bRevert.Visible = false ;
					this.dg.Columns[4].Visible = false ;
					break;
				case "2":
					this.l_Title.Text = "草稿箱" ;
					this.l_Dsc.Text = " -查看草稿箱内容" ;
					this.dg.Columns[4].Visible = false ;
					this.bRevert.Visible = false ;
					break;
				case "3":
					this.l_Title.Text = "垃圾箱" ;
					this.l_Dsc.Text = "- 查看垃圾箱内容" ;
					this.bRevert.Visible = true ;
					this.bRecycle.Visible = false ;
					break;
			}
				
		}

		private void InitSendBox(string type)
		{
			//直接调用数据访问层的方法查询数据

			//先将表格清空
			dtMailBox = null ;
			dtMailBox = new DataTable() ;

			//存储过程名			
			string spName = "Mail_GetMailBox" ;
			//参数
			object[] para = new object[] {usr.UserID,type} ;
			//查询
			dtMailBox = DataAccess.ExecuteDataTable(spName,para) ;
//			FormatData() ;
			//查询结果
			Session["dtMailBox"] = dtMailBox ;
			CommHandler.BindGrid(dg,dtMailBox) ;
		}


		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.dg.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_ItemCommand);
			this.dg.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dg_PageIndexChanged);
			this.dg.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dg_ItemDataBound);
			this.cb_Select.CheckedChanged += new System.EventHandler(this.cb_Select_CheckedChanged);
			this.bRecycle.Click += new System.EventHandler(this.bRecycle_Click);
			this.bDelete.Click += new System.EventHandler(this.bDelete_Click);
			this.bRevert.Click += new System.EventHandler(this.bRevert_Click);
			this.b_Read.Click += new System.EventHandler(this.b_Read_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void cb_Select_CheckedChanged(object sender, System.EventArgs e)
		{
			//表格中每行的选中状态置为与此CheckBox一致
			foreach(DataGridItem it in dg.Items)
			{
				((System.Web.UI.WebControls.CheckBox)it.Cells[0].Controls[1]).Checked = cb_Select.Checked;
			}		
		}

		private void bRecycle_Click(object sender, System.EventArgs e)
		{
			//执行删除到回收站命令
			ExecuteCmd("Recycle") ;		
		}

		private void bDelete_Click(object sender, System.EventArgs e)
		{
			//执行彻底删除命令
			ExecuteCmd("Delete") ;		
		}

		private void bRevert_Click(object sender, System.EventArgs e)
		{
			//执行还原命令
			ExecuteCmd("Revert") ;				
		}

		private void ExecuteCmd(string type)
		{
			int mailID = 0 ;
			int rID = 0 ;
			string status = "" ;
            
			//执行命令,循环表格的每一行,判断是否被选中后执行命令
			for(int i=0;i<dg.Items.Count;i++)
			{
				if(((System.Web.UI.WebControls.CheckBox)dg.Items[i].Cells[0].Controls[1]).Checked)
				{
					//选中,获取主键
					mailID = CommHandler.StringToInt(dg.Items[i].Cells[1].Text) ;
					rID = CommHandler.StringToInt(dg.Items[i].Cells[9].Text) ;
					if(mailID == 0)
					{
						continue ;
					}
					status = dg.Items[i].Cells[2].Text ;
					//邮件基本信息对象
					MailInfo mi = new MailInfo() ;
					//邮件查看信息对象
					MailRead mr = new MailRead() ;

					//根据命令类型决定执行
					switch(type)
					{
						case "Delete":
							//彻底删除
							if(status != "4" && status != "5")
							{
								//从发件箱删除(Mail_MailInfo)
								mi.DeleteMailInfo(mailID) ;								
							}
							else
							{
								//从收件箱删除(Mail_Read)
								mr.DeleteMailRead(rID) ;
							}
							break ;
						case "Recycle" :
							//删除到垃圾箱
							if(status != "4" && status != "5")
							{
								//从发件箱删除(Mail_MailInfo)
								mi.RecycleMailInfo(mailID,status) ;								
							}
							else
							{
								//从收件箱删除(Mail_Read)
								mr.RecycleMailRead(rID) ;
							}
							break ;
						case "Revert":
							//从垃圾箱还原
							if(status != "4" && status != "5")
							{
								//从发件箱删除(Mail_MailInfo)
								mi.RevertMailInfo(mailID,status) ;								
							}
							else
							{
								//从收件箱删除(Mail_Read)
								mr.RevertMailRead(rID) ;
							}
							break ;	
					}
				}
				 
			}
			//重新查询表格内容
			InitSendBox(h_Type.Value) ;
			
		}
	
		private void dg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
		{
			//设置表格显示的页面为选中页面
			dg.CurrentPageIndex = e.NewPageIndex ;
			//重新绑定表格
			CommHandler.BindGrid(dg,dtMailBox) ;		
		}

		private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
		{
			DataGridItem dgi = e.Item ;

			if(dgi.ItemType == ListItemType.Header || dgi.ItemType==ListItemType.Footer)
			{
				return ;
			}

			//若有附件,显示附件图标
			string txt = dgi.Cells[3].Text ;
			//去掉字符串中的nbsp
			txt = CommHandler.FormatNullString(txt) ;
			if( txt != "" )
			{
				dgi.Cells[3].Text = "<img src='images/att.gif' border='0'>" ;
			}	

			//新邮件,显示图标
			string newmail = CommHandler.FormatNullString(dgi.Cells[4].Text) ;
			int newm = CommHandler.StringToInt(newmail) ;
			if(newm==0)
			{
				dgi.Cells[4].Text = "<img src='images/new.gif' border='0'>" ;
			}
			else
			{
				dgi.Cells[4].Text = "" ;
			}
		}

		private void FormatData()
		{
			dtMailBox.Columns["times"].DataType = typeof(System.String) ;
			for(int i=0;i<dtMailBox.Rows.Count;i++)
			{
				DataRow dr = dtMailBox.Rows[i] ;
				//附件
				if(dr["AttUpName"].ToString()!="")
				{
					dr["AttUpName"] = "<img src='images/att.gif' border='0'>" ;
				}
				//新邮件
				if(CommHandler.StringToInt(dr["Times"].ToString()) == 0)
				{
					//未读
					dr["times"] = "<img src='images/new.gif' border='0'>" ;
				}
			}
		}

		private void b_Read_Click(object sender, System.EventArgs e)
		{
			//发件箱,页面导向

			//收件箱,弹出页面
		}

		private void dg_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			DataGridItem dgi = e.Item ;
			string url = "" ;

			//邮件ID
			int id = CommHandler.StringToInt(dgi.Cells[1].Text.Trim()) ;
			string status = dgi.Cells[2].Text.Trim() ;
			
			if(e.CommandName == "view")
			{
				if(status == "4" || status == "5")
				{
					//弹出页面查看邮件信息
					url = "ReadMail.aspx?MAILID="+id ;
//					CommHandler.IFrame_PopUp(Page,url) ;
					CommHandler.PopUp(Page,url,"600","500") ;
				}
				else
				{
					//页面重定向到写邮件
					url = "SendMail.aspx?MAILID="+id ;
					Page.Response.Redirect(url) ;
				}
			}
		}
	}
}

⌨️ 快捷键说明

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