using BLL; using Model; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.TestRun.BeforeTestRun { public partial class SubInspectTerm : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.InitTreeMenu();//加载树 PageInit(); } } #region 树绑定 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode = new TreeNode(); rootNode.Text = "检查表"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.ToolTip = ""; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); //var userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList(); //if (userSubInspects.Count == 0) return; //var subSystemIds = userSubInspects.ConvertAll(x => x.SubSystemId); //var workPackIds = userSubInspects.ConvertAll(x => x.WorkPackId); var list = from a in Funs.DB.PreRun_SysDevice join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId where a.ProjectId == this.CurrUser.LoginProjectId select new { a.PreRunId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName }; if (list.Count() > 0) { var subSystemIds = list.Select(x => x.PreRunId).ToList(); var workPackIds = list.Select(x => x.WorkPackId).ToList(); var selectlist = new List(); var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId join inspectterm in Funs.DB.PreRun_SubInspectTerm on selectproper.PropertyId equals inspectterm.PropertyTechnologyId where subSystemIds.Contains(selectproper.SubSystemId) select new SelectPropertyTechnology() { Id = proper.PropertyId, Code = $"管道:({proper.PipingCode})", WorkPackId = inspectterm.WorkPackId, SubSystemId = selectproper.SubSystemId }; if (sysPipingData.Count() > 0) { selectlist.AddRange(sysPipingData); } var technologylist = from technology in Funs.DB.PreRun_TechnologySysPiping join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId join inspectterm in Funs.DB.PreRun_SubInspectTerm on selecttechnology.TechnologyId equals inspectterm.PropertyTechnologyId where subSystemIds.Contains(selecttechnology.SubSystemId) select new SelectPropertyTechnology() { Id = technology.TechnologyId, Code = $"设备:({technology.TagNumber})", WorkPackId = inspectterm.WorkPackId, SubSystemId = selecttechnology.SubSystemId }; if (technologylist.Count() > 0) { selectlist.AddRange(technologylist); } var subList = list.GroupBy(x => new { x.PreRunId, x.PreRunCode, x.PreRunName }); foreach (var item in subList) { TreeNode rootUnitNode = new TreeNode();//定义根节点 rootUnitNode.NodeID = item.Key.PreRunId; rootUnitNode.Text = item.Key.PreRunName; rootUnitNode.ToolTip = item.Key.PreRunName; rootUnitNode.CommandName = ""; rootUnitNode.EnableClickEvent = false; rootUnitNode.EnableExpandEvent = false; rootNode.Nodes.Add(rootUnitNode); rootUnitNode.Expanded = true; var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName }).ToList(); if (worklist.Count > 0) { foreach (var itemWork in worklist) { TreeNode newNode = new TreeNode(); newNode.Text = itemWork.Key.WorkPackName; newNode.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId; newNode.ToolTip = itemWork.Key.WorkPackName; newNode.CommandName = ""; newNode.Expanded = true; var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId); if (workselects.Count() > 0) { newNode.EnableClickEvent = false; newNode.EnableExpandEvent = false; rootUnitNode.Nodes.Add(newNode); foreach (var itemSelect in workselects) { TreeNode newNodeSelect = new TreeNode(); newNodeSelect.Text = itemSelect.Code; newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id; newNodeSelect.ToolTip = itemSelect.Code; newNodeSelect.CommandName = ""; newNodeSelect.EnableClickEvent = true; newNodeSelect.EnableExpandEvent = true; newNode.Nodes.Add(newNodeSelect); newNodeSelect.Expanded = true; } } else { newNode.EnableClickEvent = true; newNode.EnableExpandEvent = true; rootUnitNode.Nodes.Add(newNode); } } } } } } /// /// 绑定下拉框 /// public void PageInit() { var userList = Funs.DB.Sys_User; if (userList.Count() > 0) { ddlfbs.DataTextField = "UserName"; ddlfbs.DataValueField = "UserId"; ddlfbs.DataSource = userList; ddlfbs.DataBind(); ddlcbs.DataTextField = "UserName"; ddlcbs.DataValueField = "UserId"; ddlcbs.DataSource = userList; ddlcbs.DataBind(); ddljl.DataTextField = "UserName"; ddljl.DataValueField = "UserId"; ddljl.DataSource = userList; ddljl.DataBind(); ddlyz.DataTextField = "UserName"; ddlyz.DataValueField = "UserId"; ddlyz.DataSource = userList; ddlyz.DataBind(); } } /// /// 点击TreeView /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { this.BindGrid(); } #endregion #region 数据绑定 /// /// 绑定数据 /// public void BindGrid(bool typechange = true) { var result = new List(); var sysPipingData = new List(); var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; var propertytechnologyid = string.Empty; if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) { propertytechnologyid = this.tvControlItem.SelectedNodeID.Split('|').Last(); } if (typechange) { var workPage = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId); if (workPage != null) { //加载类型 if (workPage.WorkPackType == 0) { ddlWorkPackType.Items.Clear(); ddlWorkPackType.Items.Insert(0, new ListItem("管道", "1")); ddlWorkPackType.Items.Insert(1, new ListItem("设备", "2")); ddlWorkPackType.SelectedValue = "1"; } if (workPage.WorkPackType == 1) { ddlWorkPackType.Items.Clear(); ddlWorkPackType.Items.Insert(0, new ListItem("管道", "1")); ddlWorkPackType.SelectedValue = "1"; } if (workPage.WorkPackType == 2) { ddlWorkPackType.Items.Clear(); ddlWorkPackType.Items.Insert(0, new ListItem("设备", "2")); ddlWorkPackType.SelectedValue = "2"; } //加载数据 if (ddlWorkPackType.SelectedValue == "1") { var sysData = from proper in Funs.DB.PreRun_PropertySysPiping join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId where selectproper.SubSystemId == subSystemId select new SelectPropertyTechnology() { Id = proper.PropertyId, Code = $"管道:({proper.PipingCode})" }; if (sysData.Count() > 0) { sysPipingData = sysData.ToList(); cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); } else { cbSysPiping.Items.Clear(); cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); } } else { var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId where selecttechnology.SubSystemId == subSystemId select new SelectPropertyTechnology() { Id = technology.TechnologyId, Code = $"设备:({technology.TagNumber})" }; if (sysData.Count() > 0) { sysPipingData = sysData.ToList(); cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); } else { cbSysPiping.Items.Clear(); cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); } } } } //获取子系统 var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); //获取主表数据 var workPackType = int.Parse(ddlWorkPackType.SelectedValue); var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId && x.WorkPackType == workPackType && x.PropertyTechnologyId == propertytechnologyid); if (subModel != null) { if (subModel.WorkPackType != null) { ddlWorkPackType.SelectedValue = subModel.WorkPackType.ToString(); ddlWorkPackType.Enabled = false; } var ddlsysModel = sysPipingData.FirstOrDefault(x => x.Id == subModel.PropertyTechnologyId); if (ddlsysModel != null) { ddbSysPiping.Value = ddlsysModel.Id; ddbSysPiping.Text = ddlsysModel.Code; } ddlfbs.SelectedValue = subModel.Subcontractor; ddlcbs.SelectedValue = subModel.Contractor; ddljl.SelectedValue = subModel.Supervision; ddlyz.SelectedValue = subModel.Owner; } else { ddlfbs.SelectedValue = string.Empty; ddlcbs.SelectedValue = string.Empty; ddljl.SelectedValue = string.Empty; ddlyz.SelectedValue = string.Empty; } var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId && x.WorkPackType == workPackType && x.PropertyTechnologyId == propertytechnologyid).OrderBy(x => x.Sort).ToList(); if (list.Count > 0) { foreach (var item in list) { var model = new Brid_SubInspectTermItem(); model.SubItemId = item.SubItemId; model.ProjectId = item.ProjectId; model.WorkPackId = item.WorkPackId; model.WorkInspectId = item.WorkInspectId; model.WorkInspectName = item.WorkInspectName; model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.InspectedUser = item.InspectedUser; model.InspectionResults = item.InspectionResults; model.InspectionIllustrate = item.InspectionIllustrate; model.Sort = item.Sort; model.isChick = true; result.Add(model); } } //获取预加载的数据 var defaultDatas = Funs.DB.PreRun_WorkInspectTemplate.Where(s => s.WorkPackId == workPackId).OrderBy(x => x.Sort).ToList(); if (defaultDatas.Count > 0) { int index = list.Count + 1; foreach (var item in defaultDatas) { if (list.Count(x => x.WorkInspectName == item.WorkInspectName) == 0) { var model = new Brid_SubInspectTermItem(); model.SubItemId = Guid.NewGuid().ToString(); model.ProjectId = this.CurrUser.LoginProjectId; model.WorkPackId = item.WorkPackId; model.WorkInspectId = item.WorkInspectId; model.WorkInspectName = item.WorkInspectName; model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.Sort = index + 1; model.isChick = false; result.Add(model); index++; } } } Grid1.DataSource = result; Grid1.DataBind(); if (result.Count(x => x.isChick) > 0) { //默认选中行 var checkids = result.Where(x => x.isChick).Select(a => a.SubItemId); Grid1.SelectedRowIDArray = checkids.ToArray(); } //检查人绑定 var userList = from user in Funs.DB.Sys_User join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId where projectrole.ProjectId == this.CurrUser.LoginProjectId select user; var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); var data = userList.ToList(); if (addUserList.Count() > 0) { data.AddRange(addUserList); } DropDownList ddlInspectedUser = Grid1.FindColumn("InspectedUser").FindControl("ddlInspectedUser") as DropDownList; ddlInspectedUser.DataTextField = "UserName"; ddlInspectedUser.DataValueField = "UserId"; ddlInspectedUser.DataSource = data; ddlInspectedUser.DataBind(); } /// /// 排序 /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } /// /// 行按钮事件 /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Delete") { string rowID = e.RowID; var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(p => p.SubItemId == rowID); if (model != null) { Funs.DB.PreRun_SubInspectTermItem.DeleteOnSubmit(model); Funs.DB.SubmitChanges(); BindGrid(); ShowNotify("删除成功!"); } else { var list = gvList(); list.RemoveAll(x => x.SubItemId == rowID); Grid1.DataSource = list; Grid1.DataBind(); ShowNotify("删除成功!"); } } } #endregion /// /// 保存 /// protected void btnSave_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(ddlfbs.SelectedValue)) { ShowNotify("请选择分包商!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlcbs.SelectedValue)) { ShowNotify("请选择承包商!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddljl.SelectedValue)) { ShowNotify("请选择监理!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlyz.SelectedValue)) { ShowNotify("请选择业主!", MessageBoxIcon.Warning); return; } if (ddbSysPiping.Values.Length == 0) { ShowNotify("请选择设备!", MessageBoxIcon.Warning); return; } if (Grid1.SelectedRowIndexArray.Length == 0) { ShowNotify("请选择一条数据!", MessageBoxIcon.Warning); return; } var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; var workPackType = int.Parse(ddlWorkPackType.SelectedValue); List subTrems = new List(); List subTremItems = new List(); foreach (var item in ddbSysPiping.Values) { var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubSystemId == subSystemId && x.WorkPackId == workPackId && x.WorkPackType == workPackType && x.PropertyTechnologyId == item); JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); var workInspectId = this.Grid1.Rows[i].DataKeys[1].ToString(); if (!Grid1.SelectedRowIndexArray.Contains(i)) continue; //获取子系统信息 var list = new List(); var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); if (subSysModel != null) { //获取子系统工作包检查表,如果不存在则添加 if (subTrem == null) { subTrem = new PreRun_SubInspectTerm(); subTrem.SubInspectId = Guid.NewGuid().ToString(); subTrem.WorkPackId = workPackId; subTrem.ProjectId = this.CurrUser.LoginProjectId; subTrem.InstallationId = subSysModel.InstallationId; subTrem.ProcessesId = subSysModel.ProcessesId; subTrem.SystemId = subSysModel.SystemId; subTrem.SubSystemId = subSysModel.PreRunId; subTrem.Subcontractor = ddlfbs.SelectedValue; subTrem.Contractor = ddlcbs.SelectedValue; subTrem.Supervision = ddljl.SelectedValue; subTrem.Owner = ddlyz.SelectedValue; subTrem.PropertyTechnologyId = item; subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); subTrem.AddUser = this.CurrUser.UserId; subTrem.AddTime = DateTime.Now; subTrems.Add(subTrem); //Funs.DB.PreRun_SubInspectTerm.InsertOnSubmit(subTrem); } var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.SubItemId == subItemId && x.PropertyTechnologyId == item); if (model == null) { model = new PreRun_SubInspectTermItem(); model.TermItemId = Guid.NewGuid().ToString(); model.SubItemId = subItemId; model.SubInspectId = subTrem.SubInspectId; model.WorkPackId = workPackId; model.ProjectId = this.CurrUser.LoginProjectId; model.WorkInspectId = workInspectId; model.WorkInspectName = values.Value("WorkInspectName"); model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.Subcontractor = ddlfbs.SelectedValue; model.Contractor = ddlcbs.SelectedValue; model.Supervision = ddljl.SelectedValue; model.Owner = ddlyz.SelectedValue; model.PropertyTechnologyId = item; model.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); model.AddUser = this.CurrUser.UserId; model.AddTime = DateTime.Now; model.Sort = i + 1; subTremItems.Add(model); //Funs.DB.PreRun_SubInspectTermItem.InsertOnSubmit(model); } else { model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.WorkInspectName = values.Value("WorkInspectName"); Funs.DB.SubmitChanges(); } } //Funs.DB.SubmitChanges(); } } Funs.DB.PreRun_SubInspectTerm.InsertAllOnSubmit(subTrems); Funs.DB.PreRun_SubInspectTermItem.InsertAllOnSubmit(subTremItems); Funs.DB.SubmitChanges(); this.InitTreeMenu(); //BindGrid(); ShowNotify("保存成功!"); } catch (Exception ex) { ShowNotify(ex.Message, MessageBoxIcon.Error); } } /// /// 新增 /// protected void btnAdd_Click(object sender, EventArgs e) { var list = gvList(); var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; //获取子系统 var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); if (subSysModel != null) { var model = new PreRun_SubInspectTermItem(); model.SubItemId = Guid.NewGuid().ToString(); model.ProjectId = this.CurrUser.LoginProjectId; model.WorkPackId = workPackId; model.WorkInspectId = string.Empty; model.WorkInspectName = string.Empty; model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.Sort = list.Count + 1; list.Add(model); } Grid1.DataSource = list; Grid1.DataBind(); } /// /// 入场人员培训及特种作业报验人数集合 /// private List gvList() { List list = new List(); JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); var workInspectId = this.Grid1.Rows[i].DataKeys[1] != null ? this.Grid1.Rows[i].DataKeys[1].ToString() : string.Empty; ; var subInspectId = this.Grid1.Rows[i].DataKeys[2] != null ? this.Grid1.Rows[i].DataKeys[2].ToString() : string.Empty; var workPackId = this.Grid1.Rows[i].DataKeys[3].ToString(); var installationId = this.Grid1.Rows[i].DataKeys[4].ToString(); var processesId = this.Grid1.Rows[i].DataKeys[4].ToString(); var systemId = this.Grid1.Rows[i].DataKeys[4].ToString(); var subSystemId = this.Grid1.Rows[i].DataKeys[4].ToString(); var model = new PreRun_SubInspectTermItem(); model = new PreRun_SubInspectTermItem(); model.SubItemId = subItemId; model.SubInspectId = subInspectId; model.WorkPackId = workPackId; model.ProjectId = this.CurrUser.LoginProjectId; model.WorkInspectId = workInspectId; model.WorkInspectName = values.Value("WorkInspectName"); model.InstallationId = installationId; model.ProcessesId = processesId; model.SystemId = systemId; model.SubSystemId = subSystemId; model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.AddUser = this.CurrUser.UserId; model.AddTime = DateTime.Now; model.Sort = i + 1; list.Add(model); } return list; } /// /// 检测结果 /// /// public string Results(object value) { var result = string.Empty; if (value != null) { var intVal = int.Parse(value.ToString()); if (intVal == 1) { result = "通过"; } else if (intVal == 0) { result = "未通过"; } } return result; } /// /// 绑定实体 /// public class Brid_SubInspectTermItem : PreRun_SubInspectTermItem { /// /// 是否选中 /// public bool isChick { get; set; } } /// /// 类型 /// protected void ddlWorkPackType_SelectedIndexChanged(object sender, EventArgs e) { var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; if (ddlWorkPackType.SelectedValue == "1") { var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId where selectproper.SubSystemId == subSystemId select new { Id = proper.PropertyId, Code = $"管道:({proper.PipingCode})" }; if (sysPipingData.Count() > 0) { cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); } else { cbSysPiping.Items.Clear(); cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); } } else { var sysPipingData = from technology in Funs.DB.PreRun_TechnologySysPiping join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId where selecttechnology.SubSystemId == subSystemId select new { Id = technology.TechnologyId, Code = $"设备:({technology.TagNumber})" }; if (sysPipingData.Count() > 0) { cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); } else { cbSysPiping.Items.Clear(); cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); } } } /// /// 设备选择 /// protected void ddlSysPiping_SelectedIndexChanged(object sender, EventArgs e) { BindGrid(false); } /// /// 子系统选择的管道/设备 /// public class SelectPropertyTechnology { /// /// 主键 /// public string Id { get; set; } /// /// 编码 /// public string Code { get; set; } /// /// 工作包主键 /// public string WorkPackId { get; set; } /// /// 子系统主键 /// public string SubSystemId { get; set; } } } }