Index.aspx.cs
上传用户:cha0314
上传日期:2014-03-02
资源大小:12522k
文件大小:12k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. using UDS.Components;
  12. using System.Data.SqlClient;
  13. namespace UDS.SubModule.UnitiveDocument.Mail
  14. {
  15. /// <summary>
  16. /// Index 的摘要说明。
  17. /// </summary>
  18. public class MailList : System.Web.UI.Page
  19. {
  20. protected System.Web.UI.WebControls.DataGrid dgMailList;
  21. protected static string SortRule="Desc",SortBy="MailSendDate";
  22. protected int FolderType=1;
  23. protected HttpCookie UserCookie;
  24. protected System.Web.UI.WebControls.DropDownList listFolderType;
  25. protected System.Web.UI.WebControls.Button btnClear;
  26. protected System.Web.UI.WebControls.Button btnDelete;
  27. protected System.Web.UI.WebControls.Label lblMsg;
  28. protected System.Web.UI.WebControls.Button btnExtPopSetup;
  29. protected System.Web.UI.WebControls.Button btnBeginReceive;
  30. protected System.Web.UI.WebControls.DropDownList listExtMail;
  31. protected static string CurrentPageIndex="";
  32. private void Page_Load(object sender, System.EventArgs e)
  33. {
  34. // 设置接收值
  35. UserCookie = Request.Cookies["Username"];
  36. CurrentPageIndex = Request.QueryString["CurrentPageIndex"]!=null?Request.QueryString["CurrentPageIndex"]:"";
  37. if (Request.QueryString["FolderType"] !=null)
  38. {
  39. //FolderType = Int32.Parse();
  40. Session["FolderType"] = (Request.QueryString["FolderType"].ToString()!="")?Request.QueryString["FolderType"].ToString():"1";
  41. }
  42. else
  43. {
  44. Session["FolderType"] = "1";
  45. }
  46. if(Session["FolderType"].ToString()=="3") this.btnClear .Visible = true;
  47. if(Session["FolderType"].ToString()=="4") 
  48. {
  49. this.btnExtPopSetup .Visible = true;
  50. this.listExtMail.Visible  = true;
  51. this.btnBeginReceive.Visible = true;
  52. }
  53. // 设置结束
  54. if(!IsPostBack)
  55. {
  56. PopulateListView();
  57. BindGrid();
  58. }
  59. }
  60. public string GetRealNameStr(string Username)
  61. {
  62. if(Username!="")
  63. return UDS.Components.Staff.GetRealNameStrByUsernameStr(Username,3);
  64. else
  65. return "";
  66. }
  67. #region 将数据排序
  68. /// <summary>
  69. /// 将信件按照指定字段进行排序
  70. /// </summary>
  71. protected void DataGrid_Sort(Object Src, DataGridSortCommandEventArgs E) 
  72. {
  73. SortRule   = (SortRule=="Desc")?"Asc":"Desc";
  74. SortBy   = E.SortExpression ;
  75. // MailClass mail   = new MailClass();
  76. // DataTable datatable   = mail.GetMails(FolderType,UserCookie.Value.ToString());
  77. // DataView Source   = datatable.DefaultView;
  78. // Source.Sort   = SortBy+" "+ SortRule;
  79. // mail   = null;
  80. // dgMailList.DataSource = Source;
  81. // dgMailList.DataBind();
  82. BindGrid();
  83. }
  84. #endregion
  85. #region 将邮件转移至指定信箱
  86. public void FolderListChange(object sender, System.EventArgs e)
  87. {
  88. bool sqlFlag   = true;
  89. string sql   = "";
  90. int FolderType        = Int32.Parse(this.listFolderType.SelectedItem.Value); //设置转移目标
  91. MailClass mail   = new MailClass();
  92. HttpCookie UserCookie = Request.Cookies["Username"];
  93. foreach(DataGridItem dgi in dgMailList.Items)
  94. {
  95. CheckBox cb=(CheckBox)(dgi.Cells[0].Controls[1]);
  96. if (cb.Checked==true)
  97. {
  98. int i = dgi.ItemIndex;
  99. string id = dgMailList.DataKeys[i].ToString();
  100. if (sqlFlag)
  101. {
  102. sql+=" MailID= "+id;
  103. sqlFlag=false;
  104. }
  105. else
  106. {
  107. sql+=" or";
  108. sql+=" MailID= "+id;
  109. }
  110. }
  111. }
  112. //选择为空
  113. if( sql==String.Empty)
  114. {
  115. Response.Write("<script language=javascript>alert('请选择邮件!');window.location='Index.aspx?FolderType="+FolderType+"';</script>");
  116. }
  117. else
  118. {
  119. if(mail.MailRemove(FolderType,sql))
  120. {
  121. Response.Write("<script language=javascript>alert('邮件移动成功!');window.location='Index.aspx?FolderType="+FolderType+"';</script>");
  122. }
  123. else
  124. {
  125. Server.Transfer("../../Error.aspx");
  126. }
  127. }
  128. mail=null;
  129. }
  130. #endregion
  131. #region 数据绑定至DataGrid
  132. /// <summary>
  133. /// 将某用户的邮件取出绑定至DataGrid
  134. /// </summary>
  135. protected void BindGrid() 
  136. {   
  137. MailClass mail   = new MailClass();
  138. DataTable datatable   = mail.GetMails(Int32.Parse(Session["FolderType"].ToString()),UserCookie.Value.ToString());
  139. DataView source       = datatable.DefaultView;
  140. FolderType = Int32.Parse(Session["FolderType"].ToString());
  141. // for( int i=0 ;i<datatable.Columns.Count;i++)
  142. // {
  143. // if(datatable.Columns[i].ColumnName==SortBy)
  144. // {
  145. // SortByIndex=i;
  146. // break;
  147. // }
  148. // }
  149. if(CurrentPageIndex!="") dgMailList.CurrentPageIndex = Int32.Parse(CurrentPageIndex);
  150. if(FolderType!=4)
  151. {
  152. source.Sort   = SortBy+" "+ SortRule;
  153. }
  154. dgMailList.DataSource=source;
  155. dgMailList.DataBind(); 
  156. // Response.Write(CurrentPageIndex);
  157. // 根据邮箱类别显示和隐藏列
  158. switch (FolderType)
  159. {
  160. case 1:
  161. dgMailList.Columns[3].Visible = false; // 隐藏收件人
  162. dgMailList.Columns[4].Visible = false; // 隐藏所有收件人
  163. break;
  164. case 2:
  165. dgMailList.Columns[2].Visible = false; // 隐藏发件人
  166. dgMailList.Columns[3].Visible = false;  // 隐藏收件人
  167. //dgMailList.Columns[4].Visible = true; // 隐藏所有收件人
  168. break;
  169. case 3:
  170. dgMailList.Columns[2].Visible = true; // 显示发件人
  171. dgMailList.Columns[3].Visible = false; // 隐藏收件人
  172. dgMailList.Columns[4].Visible = false; // 隐藏所有收件人
  173. this.btnClear .Attributes["onclick"] = "javascript:return confirm('您确认要清空吗?');";
  174. break;
  175. case 4:
  176. dgMailList.Columns[4].Visible = false;  // 隐藏收件人
  177. dgMailList.Columns[6].Visible = false; // 隐藏所属项目
  178. break;
  179. default: 
  180. break;
  181. }
  182. if(FolderType!=4)
  183. {
  184. DataView dataView  = new DataView();
  185. dataView    = datatable.DefaultView;
  186. dataView.RowFilter = "MailReadFlag = false";
  187. this.lblMsg.Text = datatable.Rows.Count+"/<font color=red>"+dataView.Count.ToString()+"</font>未读";
  188. this.lblMsg .Text+= (SortRule=="Desc")?"&nbsp;&nbsp;▼":"&nbsp;&nbsp;▲";
  189. }
  190. if (datatable.Rows.Count !=0)
  191. {
  192. this.btnDelete.Visible =true;
  193. this.btnDelete.Attributes ["onclick"]="javascript:return confirm('您确认要删除吗?');";
  194. }
  195. mail   = null;
  196. datatable = null;
  197. #endregion
  198. public void DataGrid_ItemDataBinding(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  199. {
  200. // int index = 0;
  201. // switch (SortBy) {
  202. // case "ClassName":
  203. // index = 4;
  204. // break;
  205. // case "MailSendDate":
  206. // index = 6;
  207. // break;
  208. // }
  209. //
  210. // if (e.Item.ItemType == ListItemType.Header)
  211. // {
  212. // //e.Item.Cells[index].Text = (SortRule=="Desc")?e.Item.Cells[index].Text+"▼":e.Item.Cells[index].Text+"▲";
  213. // e.Item.Cells[index].Text = "dsfsdfsd";
  214. // }
  215. }
  216. #region 翻页事件
  217. public void DataGrid_PageChanged(object sender,DataGridPageChangedEventArgs e)
  218. {
  219. dgMailList.CurrentPageIndex = e.NewPageIndex;
  220. CurrentPageIndex = dgMailList.CurrentPageIndex.ToString();
  221. BindGrid();
  222. }
  223. #endregion
  224. #region 初始化下拉列表框
  225. /// <summary>
  226. /// 对下拉列表进行初始化
  227. /// </summary>
  228. private void PopulateListView() 
  229. {
  230. listFolderType.Items.Clear();
  231. listFolderType.Items.Add(new ListItem("放入邮件夹...","0"));
  232. listFolderType.Items.Add(new ListItem("收件夹","1"));
  233. listFolderType.Items.Add(new ListItem("已经发送的邮件","2"));
  234. listFolderType.Items.Add(new ListItem("废件夹","3"));
  235. if(this.listExtMail.Visible)
  236. {
  237. try
  238. {
  239. MailClass mail = new MailClass();
  240. this.listExtMail.DataTextField = "Title";
  241. this.listExtMail.DataValueField = "OrderID";
  242. this.listExtMail.DataSource = mail.ExtGetAvaSetting(Request.Cookies["Username"].Value.ToString());
  243. this.listExtMail.DataBind();
  244. this.listExtMail.Items.Insert(0,"全部外部邮箱");
  245. this.listExtMail.Items.FindByText("全部外部邮箱").Value="0";
  246. this.listExtMail.SelectedIndex=0;
  247. }
  248. catch(Exception ex)
  249. {
  250. UDS.Components.Error.Log(ex.ToString());
  251. Server.Transfer("../../Error.aspx");
  252. }
  253. }
  254. }
  255. #endregion
  256. #region Web Form Designer generated code
  257. override protected void OnInit(EventArgs e)
  258. {
  259. //
  260. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  261. //
  262. InitializeComponent();
  263. base.OnInit(e);
  264. }
  265. /// <summary>
  266. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  267. /// 此方法的内容。
  268. /// </summary>
  269. private void InitializeComponent()
  270. {    
  271. this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
  272. this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);
  273. this.btnBeginReceive.Click += new System.EventHandler(this.btnBeginReceive_Click);
  274. this.btnExtPopSetup.Click += new System.EventHandler(this.btnExtPopSetup_Click);
  275. this.dgMailList.SelectedIndexChanged += new System.EventHandler(this.dgMailList_SelectedIndexChanged);
  276. this.ID = "MailList";
  277. this.Load += new System.EventHandler(this.Page_Load);
  278. }
  279. #endregion
  280. private void dgMailList_SelectedIndexChanged(object sender, System.EventArgs e)
  281. {
  282. }
  283. private void btnClear_Click(object sender, System.EventArgs e)
  284. {
  285. MailClass mail   = new MailClass();
  286. UserCookie = Request.Cookies["Username"];
  287. try
  288. {
  289. if(mail.FolderClear(UserCookie.Value.ToString(),3))
  290. {
  291. Response.Write("<script language=javascript>alert('邮件删除成功!');window.location='Index.aspx?FolderType="+Session["FolderType"].ToString()+"';</script>");
  292. }
  293. else
  294. {
  295. Server.Transfer("../../Error.aspx");
  296. }
  297. }
  298. catch(Exception ex)
  299. {
  300. UDS.Components.Error .Log(ex.ToString());
  301. Server.Transfer("../../Error.aspx");
  302. }
  303. mail=null;
  304. }
  305. private void btnDelete_Click(object sender, System.EventArgs e)
  306. {
  307. MailClass mail   = new MailClass();
  308. bool sqlFlag   = true;
  309. string sql   = "";
  310. foreach(DataGridItem dgi in dgMailList.Items)
  311. {
  312. CheckBox cb=(CheckBox)(dgi.Cells[0].Controls[1]);
  313. if (cb.Checked==true)
  314. {
  315. int i = dgi.ItemIndex;
  316. string id = dgMailList.DataKeys[i].ToString();
  317. if (sqlFlag)
  318. {
  319. sql+=" MailID= "+id;
  320. sqlFlag=false;
  321. }
  322. else
  323. {
  324. sql+=" or";
  325. sql+=" MailID= "+id;
  326. }
  327. }
  328. }
  329. //选择为空
  330. if( sql==String.Empty)
  331. {
  332. Response.Write("<script language=javascript>alert('请选择邮件!');window.location='Index.aspx?FolderType="+Session["FolderType"].ToString()+"';</script>");
  333. }
  334. else
  335. {
  336. try
  337. {
  338. if(Session["FolderType"].ToString()=="3")
  339. {
  340. mail.MailDelete(sql,1);//彻底删除
  341. }
  342. else
  343. {
  344. mail.MailDelete(sql,0);//丢到废件箱
  345. }
  346. Response.Write("<script language=javascript>alert('邮件删除成功!');window.location='Index.aspx?FolderType="+Session["FolderType"].ToString()+"';</script>");
  347. }
  348. catch(Exception ex)
  349. {
  350. UDS.Components .Error.Log(ex.ToString());
  351. Server.Transfer("../../Error.aspx");
  352. }
  353. }
  354. mail=null;
  355. }
  356. private void btnExtPopSetup_Click(object sender, System.EventArgs e)
  357. {
  358. Response.Redirect("External/SetupNavi.aspx");
  359. }
  360. private void btnBeginReceive_Click(object sender, System.EventArgs e)
  361. {
  362. MailClass mail = new MailClass();
  363. string Username = Request.Cookies["Username"].Value.ToString();
  364. int OrderID = Int32.Parse(this.listExtMail.SelectedItem.Value.ToString());
  365. try
  366. {
  367. mail.ReceiveMails(Username,OrderID);
  368. Response.Write("<script language=javascript>alert('接收完成!');</script>");
  369. }
  370. catch(Exception ex)
  371. {
  372. UDS.Components.Error.Log(ex.ToString());
  373. //Server.Transfer("../../Error.aspx");
  374. Response.Write("<script language=javascript>alert('服务器正在忙碌中,请稍候再试');</script>");
  375. }
  376. }
  377. }
  378. }