通过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” });