📄 individual.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 DBUtils;
namespace BlueHill.CheckLeave
{
/// <summary>
/// Individual 的摘要说明。
/// </summary>
public class Individual : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lblDept;
protected System.Web.UI.WebControls.DropDownList cmbDeptList;
protected System.Web.UI.WebControls.Label lblDeptID;
protected System.Web.UI.WebControls.Panel pnlChooseDept;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.DropDownList cmbEmpList;
protected System.Web.UI.WebControls.Panel pnlChooseEmp;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox txtStartTime;
protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox txtEndTime;
protected System.Web.UI.WebControls.CompareValidator CompareValidator2;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.Button btnSearch;
protected System.Web.UI.WebControls.Panel pnlHeader;
protected System.Web.UI.WebControls.Label lblMessage;
protected System.Web.UI.WebControls.Label lblEmpID;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label lblApproverName;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.Label lblReason;
protected System.Web.UI.WebControls.Label lblDeny;
protected System.Web.UI.WebControls.Label lblDenyReason;
protected System.Web.UI.WebControls.Panel pnlDetail;
protected System.Web.UI.WebControls.DataGrid grdResult;
protected System.Web.UI.WebControls.Panel pnlBack;
protected System.Web.UI.WebControls.Panel pnlBody;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if ( !IsPostBack )
{
//如果网页是第一次生成时,执行如下操作:
if ( Request.QueryString["EmpID"] == null )
{
//'网页的 URL 中查询字符串中没有 EmpID 信息,则说明该网页不是从“部门汇总”页面跳转过来的。
//设置界面控件的显示方式。
pnlDetail.Visible = false;
pnlBack.Visible = false;
pnlChooseEmp.Visible = false;
pnlHeader.Visible = false;
pnlChooseDept.Visible = false;
grdResult.Visible = false;
lblMessage.Visible = false;
//设置“开始时间”和“结束时间”文本框中的默认显示内容。
txtStartTime.Text = DateTime.Now.AddMonths(-1).ToString("yyyy/M/d");
txtEndTime.Text = DateTime.Now.AddDays(1).ToString("yyyy/M/d");
Employee emp = new Employee();
int iEmpID;
//检查员工的登录信息是否丢失,是则显示出错信息。
if ( Session["EmployeeID"] == null )
{
lblMessage.Text = "登录信息丢失,请重新登录!";
lblMessage.Visible = true;
return;
}
//获取保存在 Session 中的员工编号信息。
iEmpID = int.Parse((string)Session["EmployeeID"]);
//在网页中保存员工编号信息。
lblEmpID.Text = (string)Session["EmployeeID"];
//从数据库中获取员工的其他信息。
Employee.GetEmployeeInfo(iEmpID, emp);
//如果员工不是部门经理,则显示出错信息。
if ( !emp.IsManager )
{
lblMessage.Text = "对不起,该网页属经理专用,请退出!";
lblMessage.Visible = true;
return;
}
pnlHeader.Visible = true;
pnlChooseEmp.Visible = true;
//在网页中保存部门编号信息。
lblDeptID.Text = emp.DeptID.ToString();
//从数据库中获取总经理的员工编号。
int iCEOID = 0;
Employee.GetCEOInfo(ref iCEOID);
if ( iEmpID == iCEOID )
{
//如果登录用户为总经理,则执行如下操作:
//显示部门选择下拉框。
pnlChooseDept.Visible = true;
DataSet dsDept = new DataSet();
//从数据库中获取所有部门的列表。
DBUtils.CheckLvReq.GetDeptList(dsDept);
//用部门列表填充部门选择下拉框。
cmbDeptList.DataSource = dsDept.Tables[0];
cmbDeptList.DataTextField = "DeptName";
cmbDeptList.DataValueField = "DeptID";
cmbDeptList.DataBind();
//默认情况下,下拉框选中第一个部门。
cmbDeptList.SelectedIndex = 0;
//保存选中部门的编号。
lblDeptID.Text = cmbDeptList.SelectedValue.ToString();
}
//从数据库中获取选中部门的员工列表。
DataSet dsResult = new DataSet();
DBUtils.CheckLvReq.GetDeptMember(int.Parse(lblDeptID.Text), ref dsResult);
//用员工列表填充“选择要查看的员工”下拉框。
cmbEmpList.DataSource = dsResult.Tables[0];
cmbEmpList.DataTextField = "Name";
cmbEmpList.DataValueField = "EmployeeID";
cmbEmpList.DataBind();
cmbEmpList.SelectedIndex =0;
lblEmpID.Text =cmbEmpList.SelectedValue.ToString ();
}
else
{
//网页的 URL 中查询字符串中含有 EmpID 信息,则说明该网页是从“部门汇总”页面跳转过来的。
//设置界面控件的显示方式。
pnlChooseEmp.Visible = false;
pnlDetail.Visible = false;
pnlChooseDept.Visible = false;
lblMessage.Visible = false;
int iEmpID;
//从网页的查询字符串中获取员工编号、开始时间和结束时间。
iEmpID = int.Parse(Request["EmpID"].ToString ());
txtStartTime.Text = Request["StartTime"].ToString ();
txtEndTime.Text = Request["EndTime"].ToString ();
lblEmpID.Text = Request["EmpID"].ToString ();
//从数据库中获取该员工该段时间内所有的请假记录。
DataSet dsResult = new DataSet();
DBUtils.CheckLvReq.QueryIndividHistory(iEmpID, txtStartTime.Text.Trim(), txtEndTime.Text.Trim(), dsResult);
if ( dsResult.Tables[0].Rows.Count > 0 )
{
//找到请假记录,则以 DataGrid 的形式显示。
grdResult.DataSource = dsResult.Tables[0];
grdResult.DataBind();
grdResult.Visible = true;
}
else
{
//没有找到记录,则显示提示信息。
lblMessage.Text = "没有找到任何记录!";
grdResult.Visible = false;
lblMessage.Visible = true;
return;
}
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.cmbDeptList.SelectedIndexChanged += new System.EventHandler(this.cmbDeptList_SelectedIndexChanged);
this.cmbEmpList.SelectedIndexChanged += new System.EventHandler(this.cmbEmpList_SelectedIndexChanged);
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
this.grdResult.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdResult_ItemCommand);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
/// <summary>
/// 当用户更改选中部门时,该方法更新已保存的部门编号并更新该部门的员工列表。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmbDeptList_SelectedIndexChanged(object sender, System.EventArgs e)
{
//保存新的部门编号。
lblDeptID.Text = cmbDeptList.SelectedValue.ToString();
//从数据库中获取新部门的员工列表。
DataSet dsResult = new DataSet();
DBUtils.CheckLvReq.GetDeptMember(int.Parse(cmbDeptList.SelectedValue), ref dsResult);
//用员工列表填充“选择要查看的员工”下拉框。
cmbEmpList.DataSource = dsResult.Tables[0];
cmbEmpList.DataTextField = "Name";
cmbEmpList.DataValueField = "EmployeeID";
cmbEmpList.DataBind();
cmbEmpList.SelectedIndex =0;
lblEmpID.Text =cmbEmpList.SelectedValue.ToString ();
}
/// <summary>
/// 当用户单击“搜索”按钮时,该方法将检索数据库中员工请假的历史记录并以 DataGrid 的形式显示返回结果。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSearch_Click(object sender, System.EventArgs e)
{
DataSet dsResult = new DataSet();
//校验用户输入是否合法。
Validate();
if ( Page.IsValid )
{
//如果用户输入合法,则继续执行以下操作:
//检索数据库中员工请假的历史记录。
SubmitLvReq.QueryHistoryReq(int.Parse(lblEmpID.Text), txtStartTime.Text.Trim(), txtEndTime.Text.Trim(), dsResult);
if ( dsResult.Tables[0].Rows.Count > 0 )
{
//找到请假记录,则以 DataGrid 的形式显示结果。
grdResult.DataSource = dsResult.Tables[0];
grdResult.DataBind();
grdResult.Visible = true;
pnlDetail.Visible = false;
lblMessage.Visible = false;
}
else
{
//没有找到记录,则显示提示信息。
lblMessage.Text = "没有找到任何记录!";
pnlDetail.Visible = false;
grdResult.Visible = false;
pnlDetail.Visible = false;
lblMessage.Visible = true;
return;
}
}
}
/// <summary>
/// 当用户单击 DataGrid 中的“详细情况”链接时,该方法显示请假详细信息区域
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void grdResult_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//判断用户是否单击了“详细信息”链接。
if ( e.CommandName == "Detail" )
{
//获取用户选中记录的审批者姓名和请假事由。
lblApproverName.Text = e.Item.Cells[7].Text;
lblReason.Text = e.Item.Cells[8].Text;
if ( e.Item.Cells[4].Text.Trim() == "已否决" )
{
//如果该请假记录为否决状态,则显示否决理由。
lblDeny.Visible = true;
lblDenyReason.Visible = true;
lblDenyReason.Text = e.Item.Cells[9].Text;
}
else
{
//如果该请假记录不为否决状态,则隐藏否决理由区域。
lblDeny.Visible = false;
lblDenyReason.Visible = false;
}
//显示请假详细信息区域。
pnlDetail.Visible = true;
}
}
/// <summary>
/// 当用户更改要查看的员工时,该方法更新已保存的员工编号。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmbEmpList_SelectedIndexChanged(object sender, System.EventArgs e)
{
lblEmpID.Text =cmbEmpList.SelectedValue.ToString ();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -