protected void bt_SaveChange_Click(object sender, EventArgs e)
    {
        FNA_StaffSalaryBLL bll = new FNA_StaffSalaryBLL((int)ViewState["ID"]);

        #region 保存每一个员工工资情况
        foreach (GridViewRow row in gv_List.Rows)
        {
            try
            {
                string _staffname = ((HyperLink)(row.FindControl("hy_StaffName"))).Text;

                int id = (int)gv_List.DataKeys[row.RowIndex][0];
                FNA_StaffSalaryDetail detail = bll.Items.First <FNA_StaffSalaryDetail>(item => item.ID == id);

                decimal org_adjust = 0;
                decimal adjust     = 0;

                decimal.TryParse(detail["PayAdjust_Approve"], out org_adjust);
                decimal.TryParse(((TextBox)row.FindControl("tbx_PayAdjust_Approve")).Text, out adjust);

                if (org_adjust != adjust)
                {
                    detail["PayAdjust_Approve"] = adjust.ToString();
                    detail["PayAdjust_Reason"]  = ((TextBox)row.FindControl("tbx_PayAdjust_Reason")).Text;
                    if (detail["PayAdjust_Reason"] == "")
                    {
                        MessageBox.Show(this, "第" + (row.RowIndex + 1).ToString() + "行," + _staffname + "的工资审批调整后,原因不能为空!");
                        return;
                    }
                    detail.TotalSalary += adjust - org_adjust;
                    bll.UpdateDetail(detail);
                    FNA_StaffSalaryBLL.UpdateAdjustRecord((int)ViewState["ID"], (int)Session["UserID"], org_adjust.ToString(), detail["PayAdjust_Approve"], _staffname);
                }
            }
            catch { continue; }
        }
        #endregion

        BindGrid();
        MessageBox.Show(this, "工资调整金额保存成功!");
    }