diff --git a/插件库/Lskj.Control/MultiGridLookUp/FrmLookUp.cs b/插件库/Lskj.Control/MultiGridLookUp/FrmLookUp.cs index 061f3d2..86dcdb8 100644 --- a/插件库/Lskj.Control/MultiGridLookUp/FrmLookUp.cs +++ b/插件库/Lskj.Control/MultiGridLookUp/FrmLookUp.cs @@ -243,6 +243,15 @@ namespace Lskj.Control.MultiGridLookUp int popupWidth = iIndexWidth + iValueWidth + iTextWidth + iRemarkWidth + iOtherWidth + 20; if (popupWidth > gridControl1.Width) this.Width = popupWidth; + + foreach (GridColumn item in gcMain.Columns) + { + var column = this.gcDetail.Columns.Where(n => n.Caption.Equals(item.Caption)).FirstOrDefault(); + if (column != null) + { + column.Width = item.Width; + } + } //this._Handed = false; } /// @@ -257,6 +266,7 @@ namespace Lskj.Control.MultiGridLookUp private void SetReadOnlyColumns() { this.gcMain.Columns.Clear(); + this.gcDetail.Columns.Clear(); if (this.DataSource != null) { if (!this.DataSource.Columns.Contains(_checkFieldName)) @@ -270,53 +280,69 @@ namespace Lskj.Control.MultiGridLookUp DataSource.Rows[i][_id] = i; } } + for (int i = 0; i < 2; i++) + { + GridColumn checkColumn = new GridColumn(); + checkColumn.Name = checkColumn.FieldName = this._checkFieldName; + checkColumn.Caption = "选"; + checkColumn.Width = 30; + checkColumn.Visible = true; + checkColumn.OptionsColumn.AllowEdit = false; + checkColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; - GridColumn checkColumn = new GridColumn(); - checkColumn.Name = checkColumn.FieldName = this._checkFieldName; - checkColumn.Caption = "选"; - checkColumn.Width = 30; - checkColumn.Visible = true; - checkColumn.OptionsColumn.AllowEdit = false; - checkColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; + GridColumn valueColumn = new GridColumn(); + valueColumn.FieldName = valueColumn.Name = ValueField; + valueColumn.Caption = "编码"; + valueColumn.Width = 200; + //valueColumn.Visible = true; + valueColumn.Visible = ValueMember.Substring(0, 1) != "_"; + valueColumn.OptionsColumn.AllowEdit = false; + valueColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; - GridColumn valueColumn = new GridColumn(); - valueColumn.FieldName = valueColumn.Name = ValueField; - valueColumn.Caption = "编码"; - valueColumn.Width = 200; - //valueColumn.Visible = true; - valueColumn.Visible = ValueMember.Substring(0, 1) != "_"; - valueColumn.OptionsColumn.AllowEdit = false; - valueColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; + GridColumn textColumn = new GridColumn(); + textColumn.FieldName = textColumn.Name = TextField; + textColumn.Caption = "名称"; + textColumn.Width = 350; + //textColumn.Visible = true; + textColumn.Visible = TextField.Substring(0, 1) != "_"; + textColumn.OptionsColumn.AllowEdit = false; + textColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; - GridColumn textColumn = new GridColumn(); - textColumn.FieldName = textColumn.Name = TextField; - textColumn.Caption = "名称"; - textColumn.Width = 350; - //textColumn.Visible = true; - textColumn.Visible = TextField.Substring(0, 1) != "_"; - textColumn.OptionsColumn.AllowEdit = false; - textColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; - - this.gcMain.Columns.AddRange(new GridColumn[] { checkColumn, valueColumn, textColumn }); - this.gcDetail.Columns.AddRange(new GridColumn[] { checkColumn, valueColumn, textColumn }); + if (i == 0) + { + this.gcMain.Columns.AddRange(new GridColumn[] { checkColumn, valueColumn, textColumn }); + } + else if (i == 1) + { + this.gcDetail.Columns.AddRange(new GridColumn[] { checkColumn, valueColumn, textColumn }); + } + } if (DataSource.Columns.IndexOf("remark") != -1) { - DataColumn column = DataSource.Columns.Cast().FirstOrDefault(x => x.ColumnName.ToLower() == RemarkField); - if (column != null) RemarkField = column.ColumnName; + for (int i = 0; i < 2; i++) + { + DataColumn column = DataSource.Columns.Cast().FirstOrDefault(x => x.ColumnName.ToLower() == RemarkField); + if (column != null) RemarkField = column.ColumnName; - GridColumn remarkColumn = new GridColumn(); - remarkColumn.Name = remarkColumn.FieldName = RemarkField; - remarkColumn.Caption = "备注"; - remarkColumn.Visible = true; - remarkColumn.Width = 120; - //字段第一个字符为下划线代表不显示 - if (RemarkField.Substring(0, 1) == "_") - remarkColumn.Visible = false; - - remarkColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; - this.gcMain.Columns.Add(remarkColumn); - this.gcDetail.Columns.Add(remarkColumn); + GridColumn remarkColumn = new GridColumn(); + remarkColumn.Name = remarkColumn.FieldName = RemarkField; + remarkColumn.Caption = "备注"; + remarkColumn.Visible = true; + remarkColumn.Width = 120; + //字段第一个字符为下划线代表不显示 + if (RemarkField.Substring(0, 1) == "_") + remarkColumn.Visible = false; + remarkColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; + if (i == 0) + { + this.gcMain.Columns.Add(remarkColumn); + } + else if (i == 1) + { + this.gcDetail.Columns.Add(remarkColumn); + } + } } DataTable DT = gridControl1.DataSource == null ? new DataTable() : gridControl1.DataSource as DataTable; @@ -324,19 +350,27 @@ namespace Lskj.Control.MultiGridLookUp { if ((dcol.ColumnName.Substring(0, 1) != "_") && (dcol.ColumnName.ToLower() != ValueField.ToLower()) && (dcol.ColumnName.ToLower() != TextField.ToLower()) && ((int)dcol.ColumnName[0] > 127)) { - GridColumn otherColumn = new GridColumn(); - otherColumn.Name = otherColumn.FieldName = otherColumn.Caption = dcol.ColumnName; - otherColumn.Visible = true; - otherColumn.Width = 150; - otherColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; - this.gcMain.Columns.Add(otherColumn); - this.gcDetail.Columns.Add(otherColumn); + for (int i = 0; i < 2; i++) + { + GridColumn otherColumn = new GridColumn(); + otherColumn.Name = otherColumn.FieldName = otherColumn.Caption = dcol.ColumnName; + otherColumn.Visible = true; + otherColumn.Width = 150; + otherColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; + if (i == 0) + { + this.gcMain.Columns.Add(otherColumn); + } + else if (i == 1) + { + this.gcDetail.Columns.Add(otherColumn); + } + } } } SetCustomColumns(); this.gcDetail.GridControl.DataSource = this.gridControl1.DataSourceTable().Clone(); this.gcMain.BestFitColumns(); - this.gcDetail.BestFitColumns(); //this.gcDetail.SelectAll(); //this.gcDetail.DeleteSelectedRows(); }