using System; using System.Data; using DevExpress.XtraGrid; using UAS_PLCDataReader.DataOperate; using UAS_PLCDataReader.Entity; namespace UAS_PLCDataReader.CustomerControl.AutoDataGridControl { public partial class AutoDataGridControl : GridControl { string getDataSQL; string condition; //记录初始化的SQL,防止条件重复拼接 string firstsql; public delegate void OnDataRefresh(object sender, EventArgs e); public event OnDataRefresh DataRefresh; DataHelper dh = SystemInf.dh; //获取数据的SQL public string GetDataSQL { get { return getDataSQL; } set { getDataSQL = value; firstsql = value; } } //获取数据的总行数 public int RowCount { get { return rowCount; } set { rowCount = value; } } public string TableName { get { return tableName; } set { tableName = value; } } public string ID { get { return id; } set { id = value; } } public string InsertSQL { get { return insertSQL; } set { insertSQL = value; } } public string Condition { get { return condition; } set { condition = value; } } private string insertSQL; //用于保存数据的主表的名称 private string tableName; private string id; private int rowCount; public AutoDataGridControl() { InitializeComponent(); } private void AutoDataGridControl_VisibleChanged(object sender, EventArgs e) { RefreshData(); } public void RefreshData() { if (getDataSQL != null) { if (condition != null) { getDataSQL = getDataSQL + " " + condition; } DataTable dt = (DataTable)dh.ExecuteSql(getDataSQL, "select"); rowCount = dt.Rows.Count; DataSource = dt; getDataSQL = firstsql; //调用列自适应,自动调整最合适列宽 (MainView as GridViewWithSerialNum.GridViewWithSerialNum).BestFitColumns(); } DataRefresh?.Invoke(new object(), new EventArgs()); } } }