C#List取值 ,join使用,josn传值

list取值多选填入文本框

  <td>
                        @Html.Kendo().MultiSelectFor(m => m.Repair_ByName).DefaultOptions().DataSource(ds => ds.Read("GeRecordEmp", "Repair"))
                        @Html.ValidationMessageFor(m => m.Repair_ByName)
                    </td>
    //取维修人员信息
        public ActionResult GeRecordEmp()
        {
    
    
            using (var handler = new RepairHandler())
            {
    
    
                return Json(handler.GetAllRecordEmp().Select(x => new SelectListItem()
                {
    
    
                    Text = x.Name,
                    Value = x.Id.ToString(),
                }), JsonRequestBehavior.AllowGet);
            }
        }
     public List<Account> GetAllRecordEmp()
        {
    
    
            var getList = (from x in db.ACCOUNT
                           where x.DELETEFLAG == 0
                           select new Account
                           {
    
    
                               Id = x.ID,                           
                               Name = x.NAME                               
                           }).ToList();
            return getList;
        }

取值入文本框后怎么在文本框进行jquery取值
MultiSelectFor

Join使用

   public List<DataKeyValue> GetDepartmentAndUserList()
        {

            var list = (from d in db.DEPARTMENT.AsEnumerable()
                        join a in db.ACCOUNT on d.ID equals a.DEPARTMENTID
                        select new DataKeyValue
                        {
                            key = d.DEPARTMENTNAME,
                            value = a.ACCOUNT1
                        }).ToList();
            return list;
        }

join使用

        //取维修领料对应的设备备品清单
        public List<EMS.Models.CallRepair> getRepairGIInfo(int page, int pageSize, string sCallNO)
        {
    
    
            var getList = (from ERB in db.EMS_R_BEGIN.Where(x => x.BEGIN_REPAIR_NO == sCallNO)
                           join ER_CD in db.EMS_R_CALL_DEFECT on ERB.CALL_REPAIR_NO equals ER_CD.CALL_REPAIR_NO into a
                           from ERCD in a.DefaultIfEmpty()
                           join M_H in db.MACHINE on ERCD.MACHINE_ID equals M_H.ID into b
                           from MH in b.DefaultIfEmpty()
                           join ES_BH in db.EMS_SYS_BOM_HEAD.Where(s => s.PLANT_ID == UserSession.Plant.Id) on MH.PARTNO equals ES_BH.BOM_PART into c
                           //join ES_BH in db.EMS_SYS_BOM_HEAD on new { MH.PARTNO,ERB.PLANTID} equals new { ES_BH.BOM_PART,ES_BH.PLANT_ID} into c
                           from ESBH in c.DefaultIfEmpty()
                           join ES_BT in db.EMS_SYS_BOM_ITEM.Where(t => t.QTY > 0) on ESBH.ID equals ES_BT.BOM_ID into d
                           from ESBT in d.DefaultIfEmpty()
                           join S_P in db.SYS_PART on ESBT.PART_NO equals S_P.PART_NO into e
                           from SP in e.DefaultIfEmpty()
                           join G_ST in db.G_SUP_STORE.Where(t => t.PART_ID != null) on SP.ID equals G_ST.PART_ID into f
                           from GST in f.DefaultIfEmpty()  
                           join G_SUO in db.G_SUP_USE_ORDER.Where(t => t.DOC_NO != null) on ERB.BEGIN_REPAIR_NO equals G_SUO.DOC_NO into g
                           from GSUO in g.DefaultIfEmpty()
                           join G_SUP in db.G_SUP_USE_PART  on new {
    
     GSUO.USENO,SP.PART_NO }  equals  new {
    
     USENO= G_SUP.USE_NO,G_SUP.PART_NO} into h
                           from GSUP in h.DefaultIfEmpty()
                           select new CallRepair
                           {
    
    

                               Begin_Repair_No = ERB.BEGIN_REPAIR_NO,
                               MachineNo = MH.CUSTODYNO,
                               BomPartNo = ESBH.BOM_PART,
                               PartNo = ESBT.PART_NO,
                               PartDesc = SP.PART_DESC,
                               StoreCode = GST.STORE_CODE,
                               StoreQty = GST.QUANTITY,
                               Unit = SP.UNIT,
                               ReqQty = ESBT.QTY,
                               GiQty = GSUP.QTY

                           }).OrderBy(x => x.Begin_Repair_No).ToList();
            return getList;
        }
1、sql语句:
select * from Users u join Teachers t on u.UserID==t.TeacherID and u.Name=t.Name
2、linq写法:
1)、方法一:
将多个字段的比较,new 一个对象进行比较;
注意:对象的属性名要保持一致;

var userInfos = from u in db.Users join t in db.Teachers on new {
    
     u.UserID , u.Name } equals new {
    
     UserID = t.TeacherID,t.Name } select new {
    
     ID=u.UserID, t.Name };
2)、方法二:

var userInfos = from u in db.Users from t in db.Teachers where u.UserID == t.TeacherID && u.Name == t.Name select new {
    
     ID=u.UserID, t.Name };



josn值返回

columns.Bound(c => c.Begin_Repair_No).ClientTemplate("<a href='" + Url.Action("RepairGIEdit") + "/#=Id#'>#=Begin_Repair_No#</a>").Filterable(true).Width(130);
        columns.Bound(c => c.WorkCenter).Width(80);
        columns.Bound(c => c.Begin_ByName).Filterable(false).Sortable(false).Width(100);
        columns.Bound(c => c.Begin_Time).Filterable(false).Sortable(false).Width(130);
        columns.Bound("").ClientTemplate("<a href='" + Url.Action("RTOrderGIList", Html.ControllerName()) + "?strOrderNumber=#=Begin_Repair_No#'>领料单信息</a>").Width(60).Filterable(false);
        })
        .DefaultOptions()
        .Filterable(f => f.Enabled(true))
        .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .Read(read => read.Action("RepairGIList", Html.ControllerName()))
        .ServerOperation(true)
        .Model(m =>
        {
            m.Id(c => c.Begin_Repair_No);
        }).PageSize(50))

必须要加[DataSourceRequest] DataSourceRequest request然后使用 
return Json(list.ToDataSourceResult(request));

  public ActionResult RepairGIList([DataSourceRequest] DataSourceRequest request)
        {
    
    
            using (var handler = new RepairHandler())
            {
    
    
                var list = handler.GetRepairGIList();
                return Json(list.ToDataSourceResult(request));
            }
        }

多表查询list

   var TCALL = (from r in db.EMS_R_CALL
                         from a in db.ACCOUNT
                         where r.STATUS == 0 && a.DEPARTMENTID == DeptId && a.DELETEFLAG == 0 &&
                               r.CALL_BY == a.ID
                         select new CallRepair
                         {
                             Call_Repair_No = r.CALL_REPAIR_NO,
                             Line_Name = r.LINE.CODE,
                             Call_ByN = a.NAME,
                             Call_Time = r.CALL_TIME,
                         });

或者
     var getList = (from T_BEGIN in db.EMS_R_BEGIN.Where(y => y.STATUS == 1 && CALLNO.Contains(y.CALL_REPAIR_NO))
                           join a in db.ACCOUNT on T_BEGIN.BEGIN_BY equals a.ID into aa
                           from T_A in aa.DefaultIfEmpty()
                               //join b in TCALL on T_BEGIN.CALL_REPAIR_NO equals b.Call_Repair_No into bb
                               //from T_CALL in bb.DefaultIfEmpty()
                           select new CallRepair
                           {
                               Id = T_BEGIN.ID,
                               Call_Repair_No = T_BEGIN.CALL_REPAIR_NO,
                               Begin_Repair_No = T_BEGIN.BEGIN_REPAIR_NO,
                               //Line_Name = TCALL.Where(x=>x.Call_Repair_No==T_BEGIN.CALL_REPAIR_NO).Select(t=>t.Line_Name).FirstOrDefault(),
                               //Call_ByN = TCALL.Where(x => x.Call_Repair_No == T_BEGIN.CALL_REPAIR_NO).Select(t => t.Call_ByN).FirstOrDefault(),
                               //Call_Time = TCALL.Where(x => x.Call_Repair_No == T_BEGIN.CALL_REPAIR_NO).Select(t => t.Call_Time).FirstOrDefault(),
                               Begin_Time = T_BEGIN.BEGIN_TIME,
                               Begin_ByName = T_A.NAME,
                               Status = T_BEGIN.STATUS,
                               //StatusName = T_BEGIN.STATUS == 1 ? "起修" : (T_BEGIN.STATUS == 2 ? "工时回报" : "结案"),
                               WorkCenter = T_BEGIN.WORK_CENTER,
                           }).ToList();
 public List<EMS.Models.CallRepair> GetRepairGIInfo( string strOrderNumber)
        {
    
    
            var getList = (from ERB in db.EMS_R_BEGIN.Where(x => x.BEGIN_REPAIR_NO == strOrderNumber)
                           join ER_CD in db.EMS_R_CALL_DEFECT on new {
    
     ERB.CALL_REPAIR_NO ,ERB.BEGIN_REPAIR_NO} equals new {
    
     ER_CD.CALL_REPAIR_NO ,ER_CD.BEGIN_REPAIR_NO} into a
                           from ERCD in a.DefaultIfEmpty()
                           join M_H in db.MACHINE on ERCD.MACHINE_ID equals M_H.ID into b
                           from MH in b.DefaultIfEmpty()
                           join ES_BH in db.EMS_SYS_BOM_HEAD.Where(s => s.PLANT_ID == UserSession.Plant.Id) on MH.PARTNO equals ES_BH.BOM_PART into c
                           //join ES_BH in db.EMS_SYS_BOM_HEAD on new { MH.PARTNO,ERB.PLANTID} equals new { ES_BH.BOM_PART,ES_BH.PLANT_ID} into c
                           from ESBH in c.DefaultIfEmpty()
                           join ES_BT in db.EMS_SYS_BOM_ITEM.Where(t => t.QTY > 0) on ESBH.ID equals ES_BT.BOM_ID into d
                           from ESBT in d.DefaultIfEmpty()
                           join S_P in db.SYS_PART on ESBT.PART_NO equals S_P.PART_NO into e
                           from SP in e.DefaultIfEmpty()
                               //2021/01/03 update by Kero Hu   添加视图 G_SUP_STORE_VIEW(同一料号多个库位取最大库存的库位及库存数)
                               //join G_ST in db.G_SUP_STORE.Where(t => t.PART_ID != null) on SP.ID equals G_ST.PART_ID into f
                              //from GST in f.DefaultIfEmpty()
                           join G_ST in db.G_SUP_STORE_VIEW.Where(t => t.PART_ID != null) on SP.ID equals G_ST.PART_ID into f
                           from GST in f.DefaultIfEmpty()

                           join ER_C in db.EMS_R_CALL on ERB.CALL_REPAIR_NO equals ER_C.CALL_REPAIR_NO into g
                           from ERC in g.DefaultIfEmpty()


                           select new CallRepair
                           {
    
    
                               //Id= ESBT.ID,
                               Begin_Repair_No = ERB.BEGIN_REPAIR_NO,
                               MachineNo = MH.CUSTODYNO,
                               BomPartNo = ESBH.BOM_PART,
                               PartNo = ESBT.PART_NO,
                               PartDesc = SP.PART_DESC,
                               StoreCode = GST.STORE_CODE,
                               StoreQty = GST.QUANTITY,
                               Unit = SP.UNIT,
                               ReqQty = ESBT.QTY,
                               Line_Name= db.LINE.Where(t => t.ID == ERC.LINE_ID).Select(t => t.CODE).FirstOrDefault()
                          
                           }).OrderBy(x => x.Begin_Repair_No).ToList();
            int i = 1;
            foreach(var t in getList)
            {
    
    
                t.Id = i;
                i += 1;
                t.GiQty = CountGIQty(t.Begin_Repair_No, t.PartNo);
            }
            return getList;
        }

猜你喜欢

转载自blog.csdn.net/caoguanghui0804/article/details/111655975