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
}
}