editdocs.aspx.cs

来自「三层架构的.net源码三层架构的.net源码」· CS 代码 · 共 180 行

CS
180
字号
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace MyStarterKit.Portal.Web
{
	/// <summary>
	/// EditDocs 的摘要说明。
	/// </summary>
	public class EditDocs : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.TextBox NameField;
		protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
		protected System.Web.UI.WebControls.TextBox CategoryField;
		protected System.Web.UI.WebControls.TextBox PathField;
		protected System.Web.UI.WebControls.CheckBox Upload;
		protected System.Web.UI.WebControls.CheckBox storeInDatabase;
		protected System.Web.UI.WebControls.LinkButton updateButton;
		protected System.Web.UI.WebControls.LinkButton cancelButton;
		protected System.Web.UI.WebControls.LinkButton deleteButton;
		protected System.Web.UI.WebControls.Label CreatedBy;
		protected System.Web.UI.WebControls.Label CreatedDate;
		protected System.Web.UI.HtmlControls.HtmlInputFile FileUpload;
	
		int itemId = 0;
		int moduleId = 0;

		private void Page_Load(object sender, System.EventArgs e)
		{
			// 所属模块Id
			moduleId = Int32.Parse(Request.Params["Mid"]);

			// 验证用户是否可以修改指定模块
			if (PortalSecurity.HasEditPermissions(moduleId) == false) 
			{
				Response.Redirect("~/Admin/EditAccessDenied.aspx");
			}

			// 项Id
			if (Request.Params["ItemId"] != null) 
			{
				itemId = Int32.Parse(Request.Params["ItemId"]);
			}

			if (!Page.IsPostBack)
			{
				if (itemId != 0) 
				{
					// 初值
					DocumentDB documents = new DocumentDB();
					SqlDataReader dr = documents.GetSingleDocument(itemId);
					dr.Read();
					int dbModuleID = Convert.ToInt32(dr["ModuleID"]);
					if (dbModuleID != moduleId)
					{
						dr.Close();
						Response.Redirect("~/Admin/EditAccessDenied.aspx");
					}
					NameField.Text = (String) dr["FileFriendlyName"];
					PathField.Text = (String) dr["FileNameUrl"];
					CategoryField.Text = (String) dr["Category"];
					CreatedBy.Text = (String) dr["CreatedByUser"];
					CreatedDate.Text = ((DateTime) dr["CreatedDate"]).ToShortDateString();
					dr.Close();
				}

				// 存储上次请求页Url
				ViewState["UrlReferrer"] = Request.UrlReferrer.ToString();
			}
		}

		/// <summary>
		/// 更新
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void UpdateBtn_Click(Object sender, EventArgs e) 
		{
			if (Page.IsValid == true) 
			{
				DocumentDB documents = new DocumentDB();
				if ((storeInDatabase.Checked == true) && (FileUpload.PostedFile != null)) 
				{
					//当选择要上传到数据库中且上传文件不等于空时,当上传到服务器与上传到数据同时勾选时以上传到数据库为主
					int length = (int) FileUpload.PostedFile.InputStream.Length;
					String contentType = FileUpload.PostedFile.ContentType;
					byte[] content = new byte[length];
					FileUpload.PostedFile.InputStream.Read(content, 0, length);
					
					// 获取文件名(解决ViewDocument中的Bug),这就屏蔽了填写的文件名称,在不改动数据库的情况下只好这样
					NameField.Text = Path.GetFileName(FileUpload.PostedFile.FileName);

					documents.UpdateDocument( moduleId, itemId, Context.User.Identity.Name, NameField.Text, PathField.Text, CategoryField.Text, content, length, contentType );        
				}
				else 
				{
					// 当要穿到服务器上且上传文件不等于空时
					if ((Upload.Checked == true) && (FileUpload.PostedFile != null)) 
					{
						// 默认上传到/uploads文件夹下的虚拟路径
						String virtualPath = "~/uploads/" + Path.GetFileName(FileUpload.PostedFile.FileName);

						// 要上传到服务器上的物理路径
						String phyiscalPath = Server.MapPath(virtualPath);

						// 上传
						FileUpload.PostedFile.SaveAs(phyiscalPath);

						// 获取虚拟路径
						PathField.Text = virtualPath;
					}
					documents.UpdateDocument( moduleId, itemId, Context.User.Identity.Name, NameField.Text, PathField.Text, CategoryField.Text, new byte[0], 0, "" );
				}

				// 返回
				Response.Redirect((String) ViewState["UrlReferrer"]);
			}
		}
    
		/// <summary>
		/// 删除
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void DeleteBtn_Click(Object sender, EventArgs e) 
		{
			if (itemId != 0) 
			{
				DocumentDB documents = new DocumentDB();
				documents.DeleteDocument(itemId);
			}

			Response.Redirect((String) ViewState["UrlReferrer"]);
		}

		/// <summary>
		/// 取消
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void CancelBtn_Click(Object sender, EventArgs e) 
		{
			Response.Redirect((String) ViewState["UrlReferrer"]);
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.updateButton.Click += new System.EventHandler(this.UpdateBtn_Click);
			this.cancelButton.Click += new System.EventHandler(this.CancelBtn_Click);
			this.deleteButton.Click += new System.EventHandler(this.DeleteBtn_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
	}
}

⌨️ 快捷键说明

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