设置条件筛选查询

                               设置条件筛选查询

在完成单表、多表查询后,我们就用开始运用查询出来的数据了。数据少,则可以直接点击该行的数据,数据量大我们就要设置条件筛选去查找到所需求数据的具体位置。设置条件筛选能大大节约使用者对数据操作的时间,从而不用沿着数据表一条一条的查。
在这里插入图片描述

如上图中的黑圈里面的下拉框和文本框,将通过下拉框和文本框的选择去筛选所需求的数据,所以将涉及到下拉框绑定的问题,如图,当选择学院确定下来时,年级则是根据学院而改变,同时当选择年级确定下来的时候,班级则是根据年级、专业而改变的。

第一个绑定学院的下拉框很容易,没什么特别的地方。
在这里插入图片描述

接下来,在年级下拉框中就要通过学院作为条件来查询出来,因为并不是全部都要查询出来,所以将用到一个学院传递过来的参数。绑定年级下拉框的代码如下:

   public ActionResult SelectGrade(int AcademeID)

    {

        List<Select> listGrade = (from tbGrade in myModels.SYS_Grade

                                  where tbGrade.AcademeID
   == AcademeID

                                  select new Select

                                  {

                                      id =
tbGrade.GradeID,

                                      text
= tbGrade.GradeName

                                 
}).ToList();

        return Json(listGrade, JsonRequestBehavior.AllowGet);

    }

选中的是什么学院,查出来的就是什么年级。

   public ActionResult SelectSpecialty(int AcademeID)

    {



        var listSpecialty = (from tbSpecialty in myModels.SYS_Specialty

                             where
          tbSpecialty.AcademeID == AcademeID//获取选中学院

                             select new Select

                             {

                                 id = tbSpecialty.SpecialtyID,

                                 text =tbSpecialty.SpecialtyName

                             }).ToList();

        return Json(listSpecialty, JsonRequestBehavior.AllowGet);

    }

where tbGrade.AcademeID== AcademeID 是条件筛选的代码。选中的是什么学院,查出来的就是什么专业。

而绑定班级的下拉框,就要使用两个传递下来的参数因为班级有可能是有年级决定、或专业决定,而且还要判断只选一个选项的时候。

  public ActionResult SelectClass(int GradeID, int specialtyId)//班级有可能是有年级决定、或专业决定

    {

        List<Select> listClass = new List<Select>();

        if (specialtyId == 0)//只选一个选项的时候


        {

            listClass = (from tbClass in myModels.SYS_Class

                         where tbClass.GradeID == GradeID

                         select new Select

                         {

                             id =tbClass.ClassID,

                             text = tbClass.ClassName

                         }).ToList();

        }

        else if (GradeID == 0)

        {

            listClass = (from tbClass in myModels.SYS_Class

                         where tbClass.SpecialtyID== specialtyId

                         select new Select {

                             id = tbClass.ClassID,

                             text = tbClass.ClassName
                         }).ToList();

        }
        else
        {
            listClass = (from tbClass in myModels.SYS_Class

                         where tbClass.GradeID == GradeID

                         && tbClass.SpecialtyID == specialtyId
                         select new Select
                         {

                             id = tbClass.ClassID,
                             text = tbClass.ClassName
                         }).ToList();
        }

        return Json(listClass, JsonRequestBehavior.AllowGet);

    }

方法写好了,该怎么运用?

  $("#UsAcademe").change(function () {

            var academeId = $("#UsAcademe").val();

            //专业下拉框数据绑定

            createSelect("UsSpecialty", "/ExaminationManagement/SetExaminee/SelectSpecialty?AcademeID=" + academeId)

            //年级下拉框数据绑定

            createSelect("UsGrade", "/ExaminationManagement/SetExaminee/SelectGrade?AcademeID=" + academeId);

            //清空班级数据

            $("#UsClass").empty();

        });

createSelect是已经封装好的方法,因为涉及到传递的参数,所以在URL链接要拼接进去,如:?AcademeID= 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值