checklvreq.aspx.cs

来自「基于.net(c#+sql)人事管理系统」· CS 代码 · 共 268 行

CS
268
字号
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 DBUtils;

namespace BlueHill.CheckLeave
{
	/// <summary>
	/// CheckLvReq 的摘要说明。
	/// </summary>
	public class CheckLvReq : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Panel pnlPageFix;
		protected System.Web.UI.WebControls.Label lblMessage;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.Label lblReason;
		protected System.Web.UI.WebControls.Panel pnlDetail;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.TextBox txtDenyReason;
		protected System.Web.UI.WebControls.Button btnOK;
		protected System.Web.UI.WebControls.Button btnCancel;
		protected System.Web.UI.WebControls.Label lblLeaveID;
		protected System.Web.UI.WebControls.Panel pnlDenyReason;
		protected System.Web.UI.WebControls.DataGrid grdResult;
		protected System.Web.UI.WebControls.Panel pnlBody;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			if ( !IsPostBack )
			{
				//如果网页是第一次生成时,执行如下操作:
        
				//设置界面控件的显示方式。
				pnlDetail.Visible = false;
				pnlDenyReason.Visible = false;

				DataSet dsResult = new DataSet();

				Employee emp = new Employee();
				int iEmpID;

				//检查员工的登录信息是否丢失,是则显示出错信息。
				if ( Session["EmployeeID"] == null )
				{
					lblMessage.Text = "登录信息丢失,请重新登录!";
					lblMessage.Visible = true;
					return;
				}

				//获取保存在 Session 中的员工编号信息。
				iEmpID = int.Parse((string)Session["EmployeeID"]);

				//从数据库中获取员工的其他信息。
				Employee.GetEmployeeInfo(iEmpID, emp);

				//如果员工不是部门经理,则显示出错信息。
				if ( !emp.IsManager )
				{
					lblMessage.Text = "对不起,该网页属经理专用,请退出!";
					lblMessage.Visible = true;
					return;
				}

				//通过调用 RefreshPage 方法来在页面上显示所有要审核的记录。
				RefreshPage();

			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.txtDenyReason.TextChanged += new System.EventHandler(this.txtDenyReason_TextChanged);
			this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
			this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
			this.grdResult.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdResult_ItemCommand);
			this.grdResult.SelectedIndexChanged += new System.EventHandler(this.grdResult_SelectedIndexChanged);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		/// <summary>
		/// 当用户单击“确定”按钮时,该方法将该在数据库中更改请假记录的状态并保存否决理由。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnOK_Click(object sender, System.EventArgs e)
		{
		  int iRetValue;
          DataSet dsResult = new DataSet();
          string strDenyReason;

          strDenyReason = txtDenyReason.Text.Trim();

        //检查“否决理由”文本框是否为空,为空则退出。
			if ( strDenyReason == "" )
			{
				Response.Write("<script>alert('否决理由不能为空!')</script>");
				return;
			}

        //在数据库中更改请假记录的状态并保存否决理由。
          iRetValue = DBUtils.CheckLvReq.ChangeLeaveStatus(int.Parse(lblLeaveID.Text), "已否决", strDenyReason);

			if ( iRetValue == (int)DBResult.Success )
				//如果数据库操作成功,则调用 RefreshPage 方法来刷新网页显示。
				RefreshPage();
			else
			{
				//如果数据库操作失败,则显示出错信息。
				lblMessage.Text = "对不起,提交失败!";
				lblMessage.Visible = true;
			}
		}

		//该方法将在数据库中查找登录者要审核的所有请假记录,并以 DataGrid 的形式来显示返回结果。
		void RefreshPage()
		{

			int iApproverID;

			//检查员工的登录信息是否丢失,是则显示出错信息。
			if ( Session["EmployeeID"] == null )
			{
				lblMessage.Text = "登录信息丢失,请重新登录!";
				lblMessage.Visible = true;
				return;
			}

			//'获取保存在 Session 中的审核者的员工编号信息。
			iApproverID = int.Parse((string)Session["EmployeeID"]);

			DataSet dsResult = new DataSet();

			//重设界面控件的显示方式。
			pnlDetail.Visible = false;
			pnlDenyReason.Visible = false;
			grdResult.Visible = false;
			lblMessage.Visible = false;

			//在数据库中查找登录者要审核的所有请假记录。																																						
			DBUtils.CheckLvReq.QuerySubmittedReq(iApproverID, ref dsResult);
			if ( dsResult.Tables[0].Rows.Count > 0 )
			{
				//找到了要审批的记录,则以 DataGrid 的形式显示结果。
				grdResult.DataSource = dsResult.Tables[0];
				grdResult.DataBind();
				grdResult.Visible = true;
			}
			else
			{
				//没有找到任何记录,则显示提示信息。
				lblMessage.Text = "没有要审批的记录!";
			    lblMessage.Visible = true;
			    return;
		    }
	}
		

		/// <summary>
		/// 当用户单击“取消”按钮时,该方法将隐藏否决理由区域。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnCancel_Click(object sender, System.EventArgs e)
		{
		  pnlDenyReason.Visible = false;
		}
/// <summary>
/// 当用户选中 DataGrid 中的其他记录时,该方法将隐藏请假详细信息区域和否决理由区域。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
		private void grdResult_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			pnlDetail.Visible = false;
            pnlDenyReason.Visible = false;
		}

		private void txtDenyReason_TextChanged(object sender, System.EventArgs e)
		{
			
		
		}
		/// <summary>
		/// 当用户选中 DataGrid 中的其他记录时,该方法将隐藏请假详细信息区域和否决理由区域。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void grdResult_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			//判断用户是否单击了“请假事由”链接。
			if ( e.CommandName == "Detail" )
			{
            
				//获取用户单击的记录所对应的请假事由信息。
				lblReason.Text = e.Item.Cells[10].Text; 
				pnlDetail.Visible = true;
				pnlDenyReason.Visible = false;
			}


			//'判断用户是否单击了“否决”按钮。
			if ( e.CommandName == "Deny" ) 
			{
				//获取用户单击的记录所对应的记录编号。
				lblLeaveID.Text = e.Item.Cells[0].Text ;
				txtDenyReason.Text = "";
				pnlDenyReason.Visible = true;
				pnlDetail.Visible = false;

			}


			//判断用户是否单击了“批准”按钮。
			if ( e.CommandName == "Approve" )
			{
				int iLeaveID;
				int iRetValue;

				//获取用户单击的记录所对应的记录编号。
				iLeaveID = int.Parse(e.Item.Cells[0].Text);

				//将审批操作保存到数据库中。
				iRetValue = DBUtils.CheckLvReq.ChangeLeaveStatus( iLeaveID, "已批准", "" );

				if ( iRetValue == (int)DBResult.Success )
				{
					//如果数据库操作成功,则调用 RefreshPage 方法来刷新网页显示。
            
					RefreshPage();
				}
				else
				{
					//如果数据库操作失败,则显示出错信息。
					lblMessage.Text = "对不起,提交失败!";
					lblMessage.Visible = true;
				}
            

			}
		
		}
	}
}

⌨️ 快捷键说明

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