using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; namespace FineUIPro.Web.HSSE.PowerMG { /// /// 配电箱信息实体(模拟数据阶段使用,接入数据库后可删除) /// public class PowerBoxInfo { /// /// 主键 /// public string PowerBoxId { get; set; } /// /// 配电箱编号 /// public string PowerBoxCode { get; set; } /// /// 配电箱名称/型号 /// public string PowerBoxName { get; set; } /// /// 类型(总配电箱/分配电箱/开关箱) /// public string BoxType { get; set; } /// /// 安装位置 /// public string InstallPlace { get; set; } /// /// 额定容量(A) /// public string RatedCapacity { get; set; } /// /// 电压等级 /// public string VoltageLevel { get; set; } /// /// 责任单位 /// public string ManagerUnit { get; set; } /// /// 责任人 /// public string ManagerMan { get; set; } /// /// 联系电话 /// public string ManagerTel { get; set; } /// /// 状态(正常/停用/维修中) /// public string States { get; set; } /// /// 最近巡检日期 /// public DateTime? LastCheckDate { get; set; } /// /// 备注 /// public string Remark { get; set; } } /// /// 配电箱管理页面(当前为模拟数据演示,数据存于 Session,后续接入数据库) /// public partial class PowerBox : PageBase { /// /// 模拟数据Session键 /// public const string MockSessionKey = "PowerBoxMockData"; #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.InitMockData(); this.btnNew.OnClientClick = Window1.GetShowReference("PowerBoxEdit.aspx") + "return false;"; this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); this.BindGrid(); } } #endregion #region 模拟数据(先以模拟数据演示,接入数据库后删除本区域代码) /// /// 初始化模拟数据(Session为空时生成) /// private void InitMockData() { if (Session[MockSessionKey] == null) { Session[MockSessionKey] = CreateMockData(); } } /// /// 获取模拟数据列表(来自Session) /// private List GetMockList() { return Session[MockSessionKey] as List; } /// /// 生成初始模拟数据 /// private List CreateMockData() { List list = new List(); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-001", PowerBoxName = "总配电箱1#(XL-21型)", BoxType = "总配电箱", InstallPlace = "项目部西侧配电房", RatedCapacity = "630", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "张建国", ManagerTel = "13800001201", States = "正常", LastCheckDate = new DateTime(2026, 1, 10), Remark = "" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-002", PowerBoxName = "分配电箱1#楼", BoxType = "分配电箱", InstallPlace = "1#楼一层东侧", RatedCapacity = "250", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "李卫东", ManagerTel = "13800001202", States = "正常", LastCheckDate = new DateTime(2026, 1, 8), Remark = "" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-003", PowerBoxName = "分配电箱2#楼", BoxType = "分配电箱", InstallPlace = "2#楼一层西侧", RatedCapacity = "250", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "李卫东", ManagerTel = "13800001203", States = "正常", LastCheckDate = new DateTime(2026, 1, 5), Remark = "" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-004", PowerBoxName = "开关箱1-1", BoxType = "开关箱", InstallPlace = "1#楼三层南侧", RatedCapacity = "63", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "王强", ManagerTel = "13800001204", States = "正常", LastCheckDate = new DateTime(2026, 1, 12), Remark = "" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-005", PowerBoxName = "开关箱1-2", BoxType = "开关箱", InstallPlace = "1#楼五层北侧", RatedCapacity = "63", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "王强", ManagerTel = "13800001205", States = "维修中", LastCheckDate = new DateTime(2025, 12, 28), Remark = "漏电保护器故障,待更换" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-006", PowerBoxName = "总配电箱2#", BoxType = "总配电箱", InstallPlace = "生活区东侧", RatedCapacity = "400", VoltageLevel = "380V", ManagerUnit = "河北安装二分公司", ManagerMan = "刘志刚", ManagerTel = "13800001206", States = "正常", LastCheckDate = new DateTime(2026, 1, 11), Remark = "" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-007", PowerBoxName = "分配电箱生活区", BoxType = "分配电箱", InstallPlace = "生活区食堂旁", RatedCapacity = "160", VoltageLevel = "380V", ManagerUnit = "河北安装二分公司", ManagerMan = "刘志刚", ManagerTel = "13800001207", States = "正常", LastCheckDate = new DateTime(2026, 1, 6), Remark = "" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-008", PowerBoxName = "开关箱钢筋棚", BoxType = "开关箱", InstallPlace = "钢筋加工棚北侧", RatedCapacity = "63", VoltageLevel = "380V", ManagerUnit = "河北安装二分公司", ManagerMan = "赵磊", ManagerTel = "13800001208", States = "停用", LastCheckDate = new DateTime(2025, 12, 20), Remark = "钢筋棚搬迁后停用" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-009", PowerBoxName = "分配电箱塔吊1#", BoxType = "分配电箱", InstallPlace = "1#塔吊基础旁", RatedCapacity = "250", VoltageLevel = "380V", ManagerUnit = "河北安装三分公司", ManagerMan = "孙立新", ManagerTel = "13800001209", States = "正常", LastCheckDate = new DateTime(2026, 1, 9), Remark = "" }); list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-010", PowerBoxName = "开关箱塔吊1#", BoxType = "开关箱", InstallPlace = "1#塔吊操作室", RatedCapacity = "40", VoltageLevel = "380V", ManagerUnit = "河北安装三分公司", ManagerMan = "孙立新", ManagerTel = "13800001210", States = "正常", LastCheckDate = new DateTime(2026, 1, 9), Remark = "" }); return list; } #endregion #region 数据绑定 /// /// 绑定数据 /// private void BindGrid() { List list = GetMockList(); if (list == null) { this.InitMockData(); list = GetMockList(); } ////查询条件过滤 string code = this.txtPowerBoxCode.Text.Trim(); if (!string.IsNullOrEmpty(code)) { list = list.Where(x => x.PowerBoxCode.Contains(code)).ToList(); } string name = this.txtPowerBoxName.Text.Trim(); if (!string.IsNullOrEmpty(name)) { list = list.Where(x => x.PowerBoxName.Contains(name)).ToList(); } if (!string.IsNullOrEmpty(this.ddlBoxType.SelectedValue)) { list = list.Where(x => x.BoxType == this.ddlBoxType.SelectedValue).ToList(); } if (!string.IsNullOrEmpty(this.ddlStates.SelectedValue)) { list = list.Where(x => x.States == this.ddlStates.SelectedValue).ToList(); } Grid1.RecordCount = list.Count; var table = this.GetPagedDataTable(Grid1, list); Grid1.DataSource = table; Grid1.DataBind(); } /// /// 分页事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { this.BindGrid(); } /// /// 每页记录数下拉事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { this.Grid1.PageSize = Convert.ToInt32(this.ddlPageSize.SelectedValue); this.BindGrid(); } /// /// 排序事件 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { this.BindGrid(); } #endregion #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(); } #endregion #region 编辑 /// /// 双击行编辑事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { this.EditData(); } /// /// 右键菜单编辑事件 /// /// /// protected void btnMenuEdit_Click(object sender, EventArgs e) { this.EditData(); } /// /// 编辑数据方法 /// private void EditData() { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } string id = Grid1.SelectedRowID; PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PowerBoxEdit.aspx?PowerBoxId={0}", id))); } #endregion #region 删除 /// /// 右键菜单删除事件 /// /// /// protected void btnMenuDelete_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length > 0) { List list = GetMockList(); foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); list.RemoveAll(x => x.PowerBoxId == rowID); } Session[MockSessionKey] = list; this.BindGrid(); ShowNotify("删除数据成功!", MessageBoxIcon.Success); } } #endregion #region 二维码 /// /// 生成巡检二维码(模拟阶段:二维码内容为配电箱标识,接入数据库后可改为巡检URL) /// /// /// protected void btnQR_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); return; } string id = Grid1.SelectedRowID; List list = GetMockList(); PowerBoxInfo info = list.FirstOrDefault(x => x.PowerBoxId == id); if (info != null) { ////二维码内容:配电箱标识(编号),后续可替换为巡检页面URL string strValue = "powerbox$" + info.PowerBoxCode; string urlName = info.PowerBoxCode; string title = "配电箱:" + info.PowerBoxCode + " " + info.PowerBoxName; PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("~/Controls/ShowQRImage.aspx?strValue={0}&urlName={1}&title={2}", strValue, urlName, System.Web.HttpUtility.UrlEncode(title)), "巡检二维码", 340, 400)); } } #endregion } }