List取数据库值

通过join关联数据表取值list后返回
在这里插入图片描述
代码

     public List<SelectListItem> GetPartNoListEdit(decimal id)
        {
    
    
            var isChinese = UserSession.LanguagesCode == "zh-TW";
            var partlist = (from d in db.MAINTENANCEPLAN
                                       join a in db.SYS_PART on d.PARTID equals a.ID where d.ID==id
                                       select new SelectListItem
                                       {
    
    
                                           Text = a.PART_NO,
                                           Value = a.ID.ToString(),
                                       }).ToList();
            return partlist;
            // db.MACHINE.GroupBy(x => x.PARTNO).Select(x => new SelectListItem() { Text = x.PARTNO, Value = x.PARTNO.ToString() }).ToList();
            //return db.SYS_PART.Where(x=>x.ID==id).Select(x => new SelectListItem() { Text = x.PART_NO, Value = x.ID.ToString() }).ToList();
        }

取数据库值后返回list
在这里插入图片描述

在这里插入图片描述

下面展示一些 内联代码片

控制器方法调用
 model.WorkCenterList= handler.GetWorkCenterList();
 
        // 工作中心
        public IEnumerable<SelectListItem> GetWorkCenterList(List<decimal> plants = null)
        {
            var isChinese = UserSession.LanguagesCode == "zh-TW";
            plants = plants ?? new List<decimal>(1) { UserSession.Plant.Id };

            var list = db.EMS_SYS_WORKCENTER
                .Where(x => x.DELETEFLAG == (decimal)BooleanType.否 )
                .AsEnumerable()
                .Where(x => plants.Contains(x.PLANT_ID))
                .OrderBy(x => x.WORK_CENTER);
            return list.Select(x => new SelectListItem() { Text = isChinese ? x.REMARK : x.WORK_CENTER, Value = x.ID.ToString() });
        }
界面代码调用
		       <td>
		@*@Html.TextBoxFor(m => m.WorkCenter)*@
		@(Html.Kendo().DropDownListFor(m => m.WorkCenter)
		   .DataTextField("Text")
		     .DataValueField("Value")
		     .BindTo(Model.WorkCenterList)
		)
		     </td>

list 取值后改变另外一个值

  <td>@Html.Label("领用/退库部门")</td>
                        <td>
                            @(Html.Kendo().DropDownListFor(m => m.DeptId)
                                                        .DataTextField("Text")
                                                        .DataValueField("Value")
                                                        .BindTo(Model.DeptList)
                                                        .Events(e => e.Change("changeDeptId"))
                                                        .HtmlAttributes(new { style = "width: 80%;" })
                            )
                        </td>
     <td>@Html.Label("领用/退库人")</td>
                        <td>
                            @(Html.Kendo().DropDownListFor(m => m.EmpId)
                                                        .DataTextField("Text")
                                                        .DataValueField("Value")
                                                        .DataSource(dataSource => dataSource
                                                            .Read(read => read.Action("GetAccountSelectList", Html.ControllerName()).Type(HttpVerbs.Post).Data("getDepartmentId"))
                                                            )
                                                            .Events(e => e.DataBound("dataBound"))
                                                            .HtmlAttributes(new { style = "width: 80%" })
                                                            .Filter("contains")
                            )
                        </td>                    

    // 部门下拉式 连动 人员下拉式
    function changeDeptId() {
    
    
        $("#EmpId").data("kendoDropDownList").dataSource.read();
    }
    
 function dataBound(e) {
    
    
        if (this.select() === -1) {
    
     //check whether any item is selected
            this.select(0);
            this.trigger("change");
        }
    }
       // 读取人员下拉式来源资料时,须先取得目前所选的部门ID,作为带出人员选单的依据
    function getDepartmentId() {
    
    
        return {
    
    

            departmentId: $("#DeptId").val()
        }
    }

实现文本LIST值赋值两个字段值连接

 <td class="table-dataCol">
                        @(Html.Kendo().DropDownListFor(m => m.Machine_Id)
                                                               .DataTextField("Text")
                                                               .DataValueField("Value")
                                                               .DataSource(dataSource => dataSource
                                                               .Read(read => read.Action("GetRecordMachineList", Html.ControllerName()).Type(HttpVerbs.Post).Data("getBegin_Repair_No"))
                                                               ).Value(Model.Machine_Id.ToString())
                                                               .Events(e => e.DataBound("changeMachineName"))                                                            
                        )                      
                    </td>
        //取设备编码
        public ActionResult GetRecordMachineList(string BeginRepairNo)
        {
    
    
            if (BeginRepairNo == null) return HttpNotFound();
            return Json(new MachineHandler().GetRecordMachineList(BeginRepairNo));
        }
      // 取故障的设备
        public List<SelectListItem> GetRecordMachineList(string BeginRepairNo)
        {
    
              
            var CallRepairNo = db.EMS_R_BEGIN.Where(m => m.BEGIN_REPAIR_NO == BeginRepairNo).Select(m => m.CALL_REPAIR_NO).FirstOrDefault();
            var list = db.EMS_R_CALL_DEFECT.AsQueryable();
            if (BeginRepairNo != null) list = list.Where(x => x.CALL_REPAIR_NO == CallRepairNo);

            var tmp = new List<RecordRepairList>();
            foreach(var t in list)
            {
    
    
                var rpl = new RecordRepairList();
                rpl.Record_MachineName = t.MACHINE.CUSTODYNO + " (" + t.MACHINE.DEVICENAME + ")";
                rpl.Record_MachineId = t.MACHINE_ID;
                tmp.Add(rpl);
            }
            //return list.Select(x => new SelectListItem() { Text = x.MACHINE.CUSTODYNO, Value = x.MACHINE_ID.ToString() }).ToList();
            return tmp.Select(x => new SelectListItem() {
    
     Text = x.Record_MachineName, Value = x.Record_MachineId.ToString() }).ToList();
        }

  public class RecordRepairList
        {
    
    
            public string Record_MachineName {
    
     get; set; }
            public decimal Record_MachineId {
    
     get; set; }
        }

另外方式
List tmpList = new List();
tmpList.Add(new SelectListItem { Text = “0”, Value = “0” });

猜你喜欢

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