📄 checkotreq.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.CheckOvertime
{
/// <summary>
/// CheckOTReq 的摘要说明。
/// </summary>
public class CheckOTReq : 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 lblOTID;
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.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>
/// 当用户选中 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;
}
/// <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.CheckOTReq.ChangeOTStatus(int.Parse(lblOTID.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.CheckOTReq.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="source"></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[11].Text;
pnlDetail.Visible = true;
pnlDenyReason.Visible = false;
}
//判断用户是否单击了“否决”按钮。
if ( e.CommandName == "Deny" )
{
//获取用户单击的记录所对应的记录编号。
lblOTID.Text = e.Item.Cells[0].Text;
txtDenyReason.Text = "";
pnlDenyReason.Visible = true;
pnlDetail.Visible = false;
}
//判断用户是否单击了“批准”按钮。
if ( e.CommandName == "Approve" )
{
int iOTID;
int iRetValue;
//获取用户单击的记录所对应的记录编号。
iOTID = int.Parse(e.Item.Cells[0].Text);
//将审批操作保存到数据库中。
iRetValue =DBUtils.CheckOTReq.ChangeOTStatus(iOTID, "已批准","");
if ( iRetValue == (int)DBResult.Success )
{
//如果数据库操作成功,则调用 RefreshPage 方法来刷新网页显示。
RefreshPage();
}
else
{
//如果数据库操作失败,则显示出错信息。
lblMessage.Text = "对不起,提交失败!";
lblMessage.Visible = true;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -