using 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 { public partial class SelectPage : DevExpress.XtraEditors.XtraForm { private readonly string _webServiceName = "MesSysPageviewManager/"; private string userGuid = ""; /// /// /// /// 供应商 /// 收料组织 /// 是否委外 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(); DataTable dt = this.gcMain.DataSource as DataTable; { 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 { userGuid = Gs.DevApp.ToolBox.UtilityHelper.ToGuid(userGuid), bindGuidslist = sbList.ToString(), fType = "PDA页面", }; try { var strJson = UtilityHelper.HttpPost("", "MesSysPageviewManager/SetUserBind", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); MsgHelper.Warning("提示:" + _rtn.rtnData.outMsg); if (_rtn.rtnCode > 0) { this.Close(); } } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } }; } /// /// /// 第几页 /// 每页几条 private void getPageList(int curPage) { var _sbSqlWhere = ""; var pgq = new PageQueryModel(curPage, 999999, "a.PAGE_GROUP", "asc", "", _sbSqlWhere.ToString(), userGuid); var json = JsonConvert.SerializeObject(pgq); try { var strReturn = UtilityHelper.HttpPost("", _webServiceName + "GetListPage", json); var dd = UtilityHelper.ReturnToTablePage(strReturn); if (dd.rtnCode > 0) { DataTable dt = dd.rtnData.list; gcMain.BindingContext = new BindingContext(); if (dt.Rows.Count > 0) { gcMain.DataSource = dt; gcMain.ForceInitialize(); gridView1.BestFitColumns(); Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gridView1); } else UtilityHelper.SetDefaultTable(gcMain, gridView1); } else { ToolBox.MsgHelper.ShowError("提示:" + dd.rtnMsg); } } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } } #region 绘制表头全选勾选框 /// /// 绘制表头全选勾选框 /// 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 } }