📄 mailbox.aspx.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 + -