From 641e86dfaeb2eed992a717beb297c0ba84869f6b Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期二, 15 四月 2025 18:08:38 +0800 Subject: [PATCH] checkbox --- DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs | 93 ++++++++++++++++++++++++++++-- DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs | 19 +++++ DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs | 1 DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs | 16 ++++- 4 files changed, 115 insertions(+), 14 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs index ea15bce..858333a 100644 --- a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs +++ b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs @@ -31,6 +31,7 @@ this.panelControl2 = new DevExpress.XtraEditors.PanelControl(); this.gcMain = new DevExpress.XtraGrid.GridControl(); this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(); + this.gridColumn1 = new DevExpress.XtraGrid.Columns.GridColumn(); this.gv_depotCode = new DevExpress.XtraGrid.Columns.GridColumn(); this.gv_depotName = new DevExpress.XtraGrid.Columns.GridColumn(); this.panelControl1 = new DevExpress.XtraEditors.PanelControl(); @@ -71,16 +72,29 @@ this.gridView1.Appearance.Row.Options.UseFont = true; this.gridView1.ColumnPanelRowHeight = 60; this.gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { + this.gridColumn1, this.gv_depotCode, this.gv_depotName}); this.gridView1.GridControl = this.gcMain; this.gridView1.IndicatorWidth = 50; this.gridView1.Name = "gridView1"; this.gridView1.OptionsFind.ShowSearchNavButtons = false; - this.gridView1.OptionsSelection.MultiSelect = true; - this.gridView1.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; this.gridView1.OptionsView.ShowAutoFilterRow = true; this.gridView1.OptionsView.ShowGroupPanel = false; + // + // gridColumn1 + // + this.gridColumn1.Caption = "."; + this.gridColumn1.FieldName = "chkInt"; + this.gridColumn1.MaxWidth = 60; + this.gridColumn1.MinWidth = 60; + this.gridColumn1.Name = "gridColumn1"; + this.gridColumn1.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False; + this.gridColumn1.OptionsFilter.AllowInHeaderSearch = DevExpress.Utils.DefaultBoolean.False; + this.gridColumn1.Tag = "edit"; + this.gridColumn1.Visible = true; + this.gridColumn1.VisibleIndex = 0; + this.gridColumn1.Width = 60; // // gv_depotCode // @@ -161,5 +175,6 @@ private DevExpress.XtraGrid.Views.Grid.GridView gridView1; private DevExpress.XtraGrid.Columns.GridColumn gv_depotCode; private DevExpress.XtraGrid.Columns.GridColumn gv_depotName; + private DevExpress.XtraGrid.Columns.GridColumn gridColumn1; } } \ No newline at end of file diff --git a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs index c23e3b5..d5e23e9 100644 --- a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs +++ b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs @@ -1,9 +1,13 @@ -锘縰sing Gs.DevApp.Entity; +锘縰sing DevExpress.XtraGrid.Columns; +using DevExpress.XtraGrid.Views.Grid; +using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Data; +using System.Drawing; using System.Windows.Forms; +using System.Windows.Forms.VisualStyles; namespace Gs.DevApp.DevFrm.PDA { @@ -20,20 +24,27 @@ public SelectPage(string _userGuid) { InitializeComponent(); + this.gridView1.CustomDrawColumnHeader += (s, e) => { gridViewLeftList_CustomDrawColumnHeader(s, e); }; + this.gridView1.MouseUp += (s, e) => { gridViewLeftList_MouseUp(s, e); }; this.userGuid = _userGuid; Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameter(gridView1, null, null, null, "", null, null, false); getPageList(1); btnIn.Click += (s, e) => { System.Text.StringBuilder sbList = new System.Text.StringBuilder(); - int[] rows = this.gridView1.GetSelectedRows();//鍏堣幏鍙栭�夋嫨琛岀殑琛屽彿 - DataTable dt = this.gcMain.DataSource as DataTable;//寰楀埌GridControl鐨勬暟鎹簮 - foreach (int idx in rows) + DataTable dt = this.gcMain.DataSource as DataTable; { - string _guid = dt.Rows[idx]["guid"].ToString(); - if (sbList.Length > 0) - sbList.Append(","); - sbList.Append(_guid); + foreach (DataRow dr in dt.Rows) + { + string checkBox = dr["chkInt"].ToString(); + string _guid = dr["guid"].ToString(); + if (Gs.DevApp.ToolBox.UtilityHelper.ToCheck(checkBox)) + { + if (sbList.Length > 0) + sbList.Append(","); + sbList.Append(_guid); + } + } } var _obj = new { @@ -59,6 +70,7 @@ } }; } + /// <summary> /// </summary> @@ -97,5 +109,70 @@ MsgHelper.Warning("鎻愮ず锛�" + ex.Message); } } + + + #region 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋 + /// <summary> + /// 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋 + /// </summary> + private Rectangle checkBoxColumnHeaderRect = Rectangle.Empty; + private GridColumn checkBoxColumn = null; + private void gridViewLeftList_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e) + { + if (e.Column != null && e.Column.AbsoluteIndex == 0) + { + e.Column.Caption = ""; + checkBoxColumnHeaderRect = e.Bounds; + checkBoxColumn = e.Column; + //椤绘妸鍒楀ご鏍囬璁剧疆涓虹┖ + e.Painter.DrawObject(e.Info); + //鍦ㄥ垪澶翠腑蹇冩樉绀哄閫夋 + int x = e.Bounds.X + (int)((e.Bounds.Width - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Width) * 0.5); + int y = e.Bounds.Y + (int)((e.Bounds.Height - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Height) * 0.5); + Point location = new Point(x, y); + CheckBoxState checkBoxState; + if (e.Column.Tag != null && e.Column.Tag.ToString() == "1") + checkBoxState = CheckBoxState.CheckedPressed; + else + checkBoxState = CheckBoxState.UncheckedNormal; + CheckBoxRenderer.DrawCheckBox(e.Graphics, location, checkBoxState); + e.Handled = true; + } + } + + private void gridViewLeftList_MouseUp(object sender, MouseEventArgs e) + { + if (checkBoxColumnHeaderRect != Rectangle.Empty) + { + if (e.X > checkBoxColumnHeaderRect.X && e.X < (checkBoxColumnHeaderRect.X + checkBoxColumnHeaderRect.Width) && e.Y > checkBoxColumnHeaderRect.Y && e.Y < (checkBoxColumnHeaderRect.Y + checkBoxColumnHeaderRect.Height)) + { + DataTable _Table = (DataTable)gcMain.DataSource; + if (checkBoxColumn.Tag != null && checkBoxColumn.Tag.ToString() == "1") + { + checkBoxColumn.Tag = "0"; + foreach (DataRow row in _Table.Rows) + { + row["chkInt"] = false; + } + } + else + { + checkBoxColumn.Tag = "1"; + foreach (DataRow row in _Table.Rows) + { + row["chkInt"] = true; + } + } + gcMain.BindingContext = new BindingContext(); + gcMain.DataSource = _Table; + gcMain.ForceInitialize(); + gridView1.CloseEditor(); + gridView1.PostEditor(); + gridView1.UpdateCurrentRow(); + gridView1.InvalidateColumnHeader(checkBoxColumn); + } + } + } + #endregion } } \ No newline at end of file diff --git a/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs b/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs index 6cd8413..c4c3350 100644 --- a/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs +++ b/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs @@ -109,6 +109,7 @@ this.gv_chk.MaxWidth = 50; this.gv_chk.MinWidth = 50; this.gv_chk.Name = "gv_chk"; + this.gv_chk.Tag = "edit"; this.gv_chk.Visible = true; this.gv_chk.VisibleIndex = 0; this.gv_chk.Width = 50; diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs index f665fdc..580873b 100644 --- a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs +++ b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs @@ -42,7 +42,6 @@ private static readonly string WebApiUrl = ConfigurationManager.AppSettings["WebApiUrl"]; - public static async Task<string> UploadFileAsync(string filePath) { using (var httpClient = new HttpClient()) @@ -1352,6 +1351,14 @@ return false; } + public static bool ToCheck(string str) + { + if (str.ToUpper() == "true".ToUpper()) + return true; + if (str.ToUpper() == "1".ToUpper()) + return true; + return false; + } /// <summary> /// 璇诲彇grid鐨勫綋鍓嶈 @@ -1747,9 +1754,9 @@ column.OptionsColumn.ReadOnly = false; else column.OptionsColumn.ReadOnly = true; - - if(isPostSearch==false) - column.OptionsColumn.ReadOnly = true; + + //if(isPostSearch==false) + // column.OptionsColumn.ReadOnly = true; if (isPostSearch == true) { @@ -2090,6 +2097,7 @@ return 0; return decimal.Parse(txt); } + } /// <summary> -- Gitblit v1.9.3