using BLL; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Linq; namespace FineUIPro.Web.EditorManage { public partial class CMHTDEdit : PageBase { private bool AppendToEnd = false; #region 加载 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetButtonPower();//权限设置 this.btnClose.OnClientClick = ActiveWindow.GetHideReference(); string eProjectId = Request.Params["eProjectId"]; BLL.ContractorService.InitContractorDropDownList(this.drpContractor, false); this.drpDiscipline.DataTextField = "ConstText"; this.drpDiscipline.DataValueField = "ConstValue"; this.drpDiscipline.DataSource = BLL.TDCService.GetTDCDiscByEprojectId(eProjectId); this.drpDiscipline.DataBind(); //Funs.FineUIPleaseSelect(this.ddDisc); // 删除选中单元格的客户端脚本 string deleteScript = GetDeleteScript(); JObject defaultObj = new JObject(); defaultObj.Add("Contractor", ""); defaultObj.Add("Discipline", ""); defaultObj.Add("ReceiveDate", ""); // 在第一行新增一条数据 btnNew.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj, AppendToEnd); // 删除选中行按钮 btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("Please select at least one record!") + deleteScript; if (!string.IsNullOrEmpty(eProjectId)) { BindGrid(eProjectId); } } } #endregion #region 绑定Grid private void BindGrid(string eProjectId) { string strSql = @"SELECT htd.*,con.ContractorShortName AS ContractorName FROM dbo.Editor_CM_HTD htd LEFT JOIN dbo.Base_Contractor con ON con.ContractorId = htd.ContractorId WHERE EProjectId = @EProjectId ORDER BY con.ContractorName"; SqlParameter[] parameter = new SqlParameter[] { new SqlParameter("@EProjectId",eProjectId) }; DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.DataSource = dt; Grid1.DataBind(); } #endregion #region 删除选中行脚本 // 删除选中行的脚本 private string GetDeleteScript() { //ShowNotify("表格数据没有变化!"); return Confirm.GetShowReference("Make sure to delete the current data?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty); } #endregion #region 保存 /// /// 提交按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { string eprojectId = Request.Params["eProjectId"]; try { List htdlist = new List(); List tdclist = new List(); JArray cmHTDArr = Grid1.GetMergedData(); if (cmHTDArr.Count > 0) { Model.Editor_CM_HTD htdModel = null; Model.Editor_TDC tdcModel = null; for (int i = 0; i < cmHTDArr.Count; i++) { JObject objects = (JObject)cmHTDArr[i]; // 增加 HTD htdModel = new Model.Editor_CM_HTD(); htdModel.HTDID = Guid.NewGuid().ToString(); htdModel.EProjectId = eprojectId; string con = objects["values"]["ContractorName"].ToString(); var c = BLL.ContractorService.GetContractorByShortName(con); htdModel.ContractorId = c.ContractorId; htdModel.Discipline = objects["values"]["Discipline"] != null ? objects["values"]["Discipline"].ToString() : null; htdModel.ReceiveDate = Funs.GetNewDateTime(objects["values"]["ReceiveDate"].ToString()); htdModel.Status = objects["values"]["Status"] != null ? objects["values"]["Status"].ToString() : null; htdlist.Add(htdModel); // 同步到TDC if (!TDCService.IsExistTDC(eprojectId, "D21_Construction", objects["values"]["Discipline"].ToString())) { tdcModel = new Model.Editor_TDC(); tdcModel.TDCId = Guid.NewGuid().ToString(); tdcModel.EProjectId = eprojectId; tdcModel.Type = "D21_Construction"; tdcModel.Disc = objects["values"]["Discipline"].ToString(); tdcModel.Remarks = c.ContractorName; tdcModel.IsSync = true; tdclist.Add(tdcModel); } } } // 先删除再保存 var cmHtd = from x in Funs.DB.Editor_CM_HTD where x.EProjectId == eprojectId select x.Discipline; if (cmHtd.Count()>0) { foreach (var d in cmHtd) { if (!htdlist.Select(x=>x.Discipline).Contains(d)) { var tdc = from x in Funs.DB.Editor_TDC where x.EProjectId == eprojectId && x.Type == "D21_Construction" && x.Disc==d select x; if (tdc.Count() > 0) { BLL.TDCService.DeleteEditorTDCById(tdc.First().TDCId); } } } } BLL.TDCService.AddEditorTDC(tdclist); BLL.CMHTDService.DeleteCMHTD(eprojectId); BLL.CMHTDService.AddEditorCMHTD(htdlist); BindGrid(eprojectId); ShowNotify("Save Successfully!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } catch (Exception ex) { Alert.ShowInParent(ex.ToString()); return; } } #endregion #region 权限设置 /// /// 菜单按钮权限 /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.CMEditorMenuId); if (buttonList.Count > 0) { if (buttonList.Contains("Edit HTD")) { this.btnNew.Hidden = false; this.btnDelete.Hidden = false; this.btnSave.Hidden = false; } } } #endregion } }