根据下拉框的内容筛选数据

博客主要介绍了下拉框数据处理及查询筛选的实现过程。先查询所需数据,处理后存入session,再分割成字符串数组,去除重复和空值,放入对象列表并拼接选项。接着根据下拉框内容查询筛选数据,最后进行视图部分处理,因数据库表未详细分类,代码较复杂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 首先查询出来你需要的数据:var varLinq = …………………;

  2. 声明一个空的字符串:string Lists = “”;

  3. For循环上面查询出来的数据,把查询数据放入到一个变量里面,然后再把变量拼接到上面声明的空的字符串里面以为 ; 分割开来。
    ---- for (int i = 0; i < varLinq.Count; i++)
    {
    var linq1 = Convert.ToDateTime(varLinq[i]).ToString(“yyyy-MM-dd”).Trim();

            lists += linq1 + ";";
    

    }

  4. 把该字符串保存的session里面去,方便后面调用该条数据。Session[“list”] = lists;
    因为把数组放入到session中去,数组的类型会转换为object类型,而我们需要的是字符串数组类型,这两个类型之间的转换比较麻烦,所以我在这里直接保存字符串,然后在读取session中的数据的时候再进行分割。
    在这里插入图片描述

  5. 把上面的数据分割成字符串数组,因为 ; 为分割点进行分割。
    ----string[] listes = lists.Split(’;’);

  6. 声明一个空的字符串列表,然后遍历循环声明分割好的字符串数组,并且去掉重复的字符串和空的字符串数据。
    ---- List strCount = new List();
    foreach (string listArry in listes){
    if (!strCount.Contains(listArry) && !string.IsNullOrEmpty(listArry))
    {strCount.Add(listArry); }}

  7. new 一个对象列表,List list = new List(); SelectVo是一个实体类,里面就一个id选中值(public int id { get; set; })和text显示值(public string text { get; set; })设置这两个值为允许读、写的状态。

  8. For循环上面处理好的字符串列表,然后把值放入对象列表中
    — for (int i = 0; i < strCount.Count; i++){
    var linq1 = strCount[i].ToString().Trim();
    SelectVo select = new SelectVo();
    select.id = i + 1; select.text = linq1;
    list.Add(select);
    }

  9. 把下拉框最开始的”–请选择—”项拼接到对象列表中。

  10. 把处理好的对象列表返回回去,下拉框的处理就完成了。return Json(list, JsonRequestBehavior.AllowGet);然后就是根据下拉框的内容查询筛选数据。

  11. 再次new 一个对象列表List list = new List();这里的对象列表中不存在上面的数据。

  12. 判断Session[‘list’]是否为空,如果为空,说明上面数据处理异常,如果不为空进行下一步操作。

  13. 声明一个字符串来接受session中的值:string strList = Session[“list”].ToString();

  14. 分割上面的字符串并保存的字符串数组里面去: string[] listes = strList.Split(’;’);

  15. 重复上面的操作:
    声明空的字符串列表(string strList = Session[“list”].ToString()?—
    遍历循环字符串数组,把值放入字符串列表里面去,并且去掉重复的字符串和空的字符串数据—For循环字符串列表,把值添加到上面声明的空的对象列表中去,然后拼接请‘—请选择—’项;代码和上面的一致。
    16.通过ID查询出来出对象列表中的文本值text,StudentDate是视图传过来的参数:
    string Text = listSelect.Where(S => S.id == StudentDate).SingleOrDefault().text;
    总体代码图片:
    在这里插入图片描述
    17.然后就是查询出下拉框对应的全部数据,并且将其样式转为年月日的形式:
    var varLinq = myModels.一周内航班信息8.Select(D => D.航班日期).ToList();
    for (int i = 0; i < varLinq.Count; i++)
    {
    var linq1 = Convert.ToDateTime(varLinq[i]);
    var linq2 = linq1.ToString(“yyyy-MM-dd”);
    listFangjie[i].StudentNumber = linq2.ToString();
    在这里插入图片描述 }
    18.判断从页面下拉框传过来的id是否大于0,大于0说明有数据根据上面获取到的text文本值进行查询: if (StudentDate > 0)
    {
    listFangjie = listFangjie.Where(D => D.StudentNumber.Contains(Text)).ToList();
    }
    并且把值返回到视图:return Json(layuiTableData, JsonRequestBehavior.AllowGet);
    19.然后就是视图(JQuery)部分的处理,视图部分代码:
    1.获取下拉框的值:var StudentDate = $("#StudentDate").val();
    2.判断如果获取到的值为null、””或者undefined则使它的值为0;
    3.表格数据重载,并把下拉框的值作为参数传到控制器,控制器处理完成之后就会刷新表格。
    20.下拉框的代码之所以那么复杂主要是因为数据库的表的问题,因为数据库只有一张粗糙的主表,并没有进行详细的分类处理,所以为了实现下拉框的查询的这个功能,代码就复杂了一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值