private void ugBTS_BeforeCellListDropDown(object sender, CancelableCellEventArgs e) { UltraDropDown udd = e.Cell.ValueListResolved as UltraDropDown; if (udd != null) { udd.DropDownWidth = e.Cell.Column.CellSizeResolved.Width; } }
void ug_list_InitializeLayout(object sender, InitializeLayoutEventArgs e) { UltraGrid ug_list = sender as UltraGrid; Sys_PD_RefModule refModuleData = new Sys_PD_RefModule(); int i = 0; //ug_list.DisplayLayout.Appearance.FontData.SizeInPoints = (float)30; //ug_list.ResetDisplayLayout(); //绑定每一列,并修改表头 Sys_PD_Module module = new Sys_PD_Module(); GridTagObject gridObj = ug_list.Tag as GridTagObject; module = gridObj.Module; //module = ug_list.Tag as Sys_PD_Module; List<Sys_PD_Filed> filedList = new List<Sys_PD_Filed>(); filedList = instField.GetListByWhere(" and DCP_ModuleName='" + module.SPM_Module + "' order by DCP_Order ASC").ToList(); // e.Layout.Bands[0].Columns["price"].MaskInput= "$#,###.##"; Infragistics.Win.UltraWinGrid.UltraGridColumn ugCol; for (i = 0; i < e.Layout.Bands[0].Columns.Count; i++)//使所有的都不能编辑 { ugCol = e.Layout.Bands[0].Columns[i]; //使其不能在Grid上编辑 ugCol.CellActivation = Activation.NoEdit; ugCol.Hidden = true; //ugCol.Header.te } ug_list.DisplayLayout.Bands[0].Summaries.Clear(); foreach (Sys_PD_Filed field in filedList) { UltraGridBand band = e.Layout.Bands[0]; if (band.Columns.Exists(field.DCP_ControlID)) { band.Columns[field.DCP_ControlID].Header.Caption = field.DCP_Label; band.Columns[field.DCP_ControlID].Hidden = field.DCP_IsHidden == 1 ? true : false; band.Columns[field.DCP_ControlID].Tag = field;//置tag属性,保存列的配置属性 band.Columns[field.DCP_ControlID].Header.VisiblePosition = field.DCP_Order; band.Columns[field.DCP_ControlID].CellActivation = Activation.AllowEdit; } else { continue; } if (field.DCP_IsSummary > 0) { ug_list.DisplayLayout.Bands[0].Columns[field.DCP_ControlID].AllowRowSummaries = AllowRowSummaries.SingleSummaryBasedOnDataType; ug_list.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug_list.DisplayLayout.Bands[0].Columns[field.DCP_ControlID]); ug_list.DisplayLayout.Bands[0].SummaryFooterCaption = "合计"; } //绑定编辑的控件 switch (field.DCP_ControlType) { case "text": if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } break; case "dec": band.Columns[field.DCP_ControlID].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Double; band.Columns[field.DCP_ControlID].PromptChar = ' '; band.Columns[field.DCP_ControlID].MaskDisplayMode = Infragistics.Win.UltraWinMaskedEdit.MaskMode.Raw; band.Columns[field.DCP_ControlID].MaskDataMode = Infragistics.Win.UltraWinMaskedEdit.MaskMode.Raw; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } break; case "int": band.Columns[field.DCP_ControlID].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Integer; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } break; case "check": band.Columns[field.DCP_ControlID].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } break; case "date": band.Columns[field.DCP_ControlID].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Date; band.Columns[field.DCP_ControlID].MaskInput = "yyyy-mm-dd"; //band.Columns[field.DCP_ControlID].DefaultCellValue = DateTime.Now; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } break; case "time": band.Columns[field.DCP_ControlID].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTimeWithoutDropDown; band.Columns[field.DCP_ControlID].MaskInput = "yyyy-mm-dd hh:mm"; //band.Columns[field.DCP_ControlID].DefaultCellValue = DateTime.Now; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } break; case "dict": var dict = instDict.GetListByWhere(string.Format(" and dict_key='{0}' and dict_code <>'{0}' order by dict_order ", field.DCP_Type)); var valueList = new ValueList(); foreach (var obj in dict) { valueList.ValueListItems.Add(obj.Dict_Code, obj.Dict_Name); } band.Columns[field.DCP_ControlID].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; band.Columns[field.DCP_ControlID].ValueList = valueList; band.Columns[field.DCP_ControlID].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.OnCellActivate; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } break; case "ref": //e.Layout.Bands[0].Columns[field.DCP_ControlID].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.ul; UltraDropDown drop = new UltraDropDown(); string sql = string.Empty; //if (!string.IsNullOrEmpty(field.DCP_RefSQL)) //{ // sql = string.Format(field.DCP_RefSQL, ""); //MethodInvoker exc = delegate //{ ADOSys_PD_RefModule refInst = new ADOSys_PD_RefModule(); Sys_PD_RefModule refModule = refInst.GetListByWhere(string.Format(" and SPR_RefModule='{0}'", field.DCP_RefSQL)).FirstOrDefault(); if (refModule != null && !string.IsNullOrEmpty(field.DCP_RefSQL)) { sql = refModule.SPR_RefSQL.Trim(); DataTable refDate = new DataTable(); refDate = instField.GetRefData(sql); drop.DataSource = refDate.DefaultView; drop.DisplayMember = field.DCP_RefValue; drop.ValueMember = field.DCP_RefCode; drop.Tag = field; //drop.v += new EventHandler(drop_TextChanged); band.Columns[field.DCP_ControlID].ValueList = drop; band.Columns[field.DCP_ControlID].AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } drop.Rows.ColumnFilters[field.DCP_RefValue].FilterConditions.Add(FilterComparisionOperator.Contains, drop.Text); } else { DataTable refDate = new DataTable(); drop.DataSource = refDate.DefaultView; drop.DisplayMember = field.DCP_RefValue; drop.ValueMember = field.DCP_RefCode; //drop.v += new EventHandler(drop_TextChanged); band.Columns[field.DCP_ControlID].ValueList = drop; band.Columns[field.DCP_ControlID].AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; if (field.DCP_IsReadonly == 1) { band.Columns[field.DCP_ControlID].CellClickAction = CellClickAction.RowSelect; } //drop.Rows.ColumnFilters[field.DCP_RefValue].FilterConditions.Add(FilterComparisionOperator.Contains, drop.Text); } //}; //exc.BeginInvoke(null, null); //} break; } } if (module.SPM_IsFilter > 0) { SetExcelStyleFilter(ug_list); } ug_list.DisplayLayout.AutoFitStyle = AutoFitStyle.ExtendLastColumn; GridFormater.RetrieveSetGridFormat(ug_list, ug_list.DisplayLayout.Bands[0], module.SPM_Module, SessionConfig.UserID); }
void ug_list_CellChange(object sender, CellEventArgs e) { UltraGrid ug_list = sender as UltraGrid; UltraGridCell cell = e.Cell; Sys_PD_Filed field = cell.Column.Tag as Sys_PD_Filed; try { EmbeddableEditorBase editor = e.Cell.EditorResolved; object value = editor.IsValid ? editor.Value : editor.CurrentEditText; e.Cell.Value = value; if (field != null) { if (field.DCP_ControlType == "ref") { UltraDropDown drop = cell.Column.ValueList as UltraDropDown; drop.Rows.ColumnFilters.ClearAllFilters(); drop.Rows.ColumnFilters[field.DCP_RefValue].FilterConditions.Add(FilterComparisionOperator.Contains, cell.Text); drop.Rows.ColumnFilters[field.DCP_RefCode].FilterConditions.Add(FilterComparisionOperator.Contains, cell.Text); drop.Rows.ColumnFilters.LogicalOperator = FilterLogicalOperator.Or; if (!string.IsNullOrEmpty(field.DCP_RefBack))//回写数据 { //回写DCP_RefBack string[] arr = field.DCP_RefBack.Split(','); foreach (string controlInfo in arr) { try { string[] control = controlInfo.Split(':'); e.Cell.Row.Cells[control[0]].Value = drop.SelectedRow.Cells[control[1]].Value.ToString(); } catch { } } } } if (!string.IsNullOrEmpty(field.DCP_CControl)) { Sys_PD_Filed cField = e.Cell.Row.Cells[field.DCP_CControl].Column.Tag as Sys_PD_Filed; if (cField != null) { if (cField.DCP_ControlType == "proc") { ADOSys_PD_Filed fieldInstance = new ADOSys_PD_Filed(); DataTable refDate = fieldInstance.GetProcData(cField.DCP_RefSQL, cell.Value.ToString()); if (refDate != null && refDate.Rows.Count > 0) { UltraDropDown drop = new UltraDropDown(); drop.DataSource = refDate.DefaultView; drop.DisplayMember = cField.DCP_RefValue; drop.ValueMember = cField.DCP_RefCode; drop.Tag = cField; e.Cell.Row.Cells[field.DCP_CControl].ValueList = drop; drop.Rows.ColumnFilters[cField.DCP_RefValue].FilterConditions.Add(FilterComparisionOperator.Contains, drop.Text); } else { e.Cell.Row.Cells[field.DCP_CControl].ValueList = null; } } } } //if (field.DCP_ControlType == "proc") //{ // ADOSys_PD_Filed fieldInstance = new ADOSys_PD_Filed(); // DataTable refDate = fieldInstance.GetProcData(field.DCP_RefSQL, e.Cell.Row.Cells[field.DCP_PControl].Value.ToString()); // UltraDropDown drop = new UltraDropDown(); // drop.DataSource = refDate.DefaultView; // drop.DisplayMember = field.DCP_RefValue; // drop.ValueMember = field.DCP_RefCode; // drop.Tag = field; // cell.ValueList = drop; // drop.Rows.ColumnFilters[field.DCP_RefValue].FilterConditions.Add(FilterComparisionOperator.Contains, drop.Text); //} if (!string.IsNullOrEmpty(field.DCP_PageName)) { string[] arr = field.DCP_PageName.Split(','); foreach (string name in arr) { e.Cell.Row.Cells[name].Value = e.Cell.Text; } } } } catch { } }