一个根据数据库中数据,并且页面中用户的勾选所达到的效果

来源:互联网 发布:淘宝手机详情页图 750 编辑:程序博客网 时间:2024/06/05 03:48

我在做培训功能的时候,牵涉到,针对培训期次,有已参加,未参加的人员,当针对某一期次的培训进行人员添加或删除时,根据实际情况,已参加就被勾选,而且要根据用户再次勾选或者取消来实时统计针对该批次已添加几个人,是否超过计划人数?

实现效果:

 

页面JS:

<script>

<!--

        function addPerson()

        {

            var i,count=0;

            for(i=0;i<document.all.gvMessageEmp.rows.length;i++)

            {

                var cb=document.all.gvMessageEmp.rows(i).cells(0).children(0);

                if(cb.checked)

                {      

                    count=count+1;

                }

             }

            document.getElementById("lblTrainPersonsNow").value=String(count);

        }

    -->

</script>

在后台PageLoad方法中,下面这个是用来在针对期次加载时来初始化已参加人员的勾选情况

for (int i = 0; i < j; i++)

{

                    CheckBox checkBox = (CheckBox)gvMessageEmp.Rows[i].FindControl("chbID");

                    string empID = gvMessageEmp.Rows[i].Cells[1].Text.ToString().Trim();

                    string trainID = Session["trainID"].ToString();

 

                    if (HRH_TrainInfoDetailManager.GetHRH_TrainInfoDetailByTrainID(trainID, empID) != 0)

                    {

                        checkBox.Checked = true;

                    }

}

下面是用来处理添加员工和取消员工的勾选情况

try{

            int j = gvMessageEmp.Rows.Count;

            int countCheck = 0;

 

            if (Session["trainID"] != null)

            {

                string trainID = Session["trainID"].ToString();

                HRH_TrainClassInfo hRH_TrainClassInfo = HRH_TrainClassInfoManager.GetHRH_TrainClassInfoByTrainID(trainID);

                //这里钱是根据培训费用/计划人数得到的

                decimal trainDtMoney = hRH_TrainClassInfo.TrainMoney/ hRH_TrainClassInfo.TrainPersons;

               

                //只有当培训状态为:准备状态时,才可以对该培训计划进行人员的添加,其他状态均不可以

                if (hRH_TrainClassInfo.TrainState == 1)

                {

                    for (int i = 0; i < j; i++)

                    {

                        CheckBox checkBox = (CheckBox)gvMessageEmp.Rows[i].FindControl("chbID");

                        string empID = gvMessageEmp.Rows[i].Cells[1].Text.ToString().Trim();

                        //当该条记录已经勾选,并且数据库中没有数据是,进行添加;

                        //否则,当记录没有勾选,并且数据中存在该记录,进行删除

                        if (checkBox.Checked && HRH_TrainInfoDetailManager.GetHRH_TrainInfoDetailByTrainID(trainID, empID) == 0)

                        {

                            countCheck = countCheck + 1;

                            //string empID = gvMessageEmp.Rows[i].Cells[1].Text.ToString().Trim();

                            string empName = gvMessageEmp.Rows[i].Cells[2].Text.ToString().Trim();

                            int depID = int.Parse(gvMessageEmp.Rows[i].Cells[3].Text.ToString().Trim());

                            string depName = gvMessageEmp.Rows[i].Cells[4].Text.ToString().Trim();

                            int trainDtState = 0;

                            HRH_TrainInfoDetailManager.AddHRH_TrainInfoDetail(new HRH_TrainInfoDetail(trainID, empID, empName, depID, depName, trainDtMoney, trainDtState));

                        }

                        else if (!checkBox.Checked && HRH_TrainInfoDetailManager.GetHRH_TrainInfoDetailByTrainID(trainID, empID) > 0)

                        {

                            HRH_TrainInfoDetailManager.DeleteHRH_TrainInfoDetail(trainID, empID);

                        }

                    }

                    if (countCheck > Convert.ToInt32(lblTrainPersons.Text.ToString()))

                    {

                        string script = "<script>alert('您一共添加了" + countCheck.ToString() + ",已经添加完所有的计划人数的名额!')</script>";

                        this.ClientScript.RegisterStartupScript(this.GetType(), "", script);

                        Response.Redirect("InsertTrainPerson.aspx");

                    }

                    else

                    {

                        Response.Redirect("TrainPersonStateM.aspx");

                    }

                    //可以添加这期的培训编号,在进入培训人员管理页面时默认显示当前刚添加后的这期培训人员的情况

                }

                else

                {

                    Page.ClientScript.RegisterStartupScript(GetType(), "", "<script language=javascript>alert('对不起,该培训计划已经完成或放弃,不能再添加或去除培训人员!');window.location.href='TrainClassInfoManager.aspx';</script>");

                }

            }

}