public testBandGridView() { InitializeComponent(); _LstEntitys = getOrgDataSource(); _DataBinding = new MB.WinClientDefault.Common.UIDynamicColumnBinding <ProductInfo>(gridControlEx1, xmlFileName); DevExpress.XtraGrid.Views.BandedGrid.AdvBandedGridView advBandedView = new DevExpress.XtraGrid.Views.BandedGrid.AdvBandedGridView(gridControlEx1); gridControlEx1.MainView = advBandedView; _DataBinding = new MB.WinClientDefault.Common.UIDynamicColumnBinding <ProductInfo>(gridControlEx1, xmlFileName); _DataBinding.ReadOnly = false; MB.WinBase.Data.HViewConvertCfgParam cfgPars = MB.WinBase.LayoutXmlConfigHelper.Instance.GetHViewConvertCfgParam(xmlFileName, string.Empty); cfgPars.DynamicColumnCaption = false; MB.WinBase.Data.HViewDataConvert <ProductInfo> convert = new MB.WinBase.Data.HViewDataConvert <ProductInfo>(cfgPars); _DataBinding.CreateDataBinding(convert, _LstEntitys, "SDynamicColumn"); //_DataBinding = new MB.WinClientDefault.Common.UIDynamicColumnBinding<ProductInfo>(gridControlEx1, "testHViewDataConvert"); //MB.WinBase.Data.HViewConvertCfgParam cfgPars = MB.WinBase.LayoutXmlConfigHelper.Instance.GetHViewConvertCfgParam("testHViewDataConvert", string.Empty); //_DataConvert = new MB.WinBase.Data.HViewDataConvert<ProductInfo>(cfgPars); //_DataBinding.CreateDataBinding(_DataConvert, _LstEntitys, "Default"); //MB.XWinLib.XtraGrid.XtraGridHelper.Instance.BindingToXtraGrid(gridControlEx1, _LstEntitys, "testAdvBandGridView"); //List<ProductInfo> lstData = _LstEntitys; //_DataBinding.CreateDataBinding(_DataConvert, lstData, "Default"); DevExpress.XtraGrid.Views.BandedGrid.BandedGridView bandGridView = gridControlEx1.MainView as DevExpress.XtraGrid.Views.BandedGrid.BandedGridView; bandGridView.RowClick += new DevExpress.XtraGrid.Views.Grid.RowClickEventHandler(bandGridView_RowClick); bandGridView.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(bandGridView_CellValueChanged); }
private void button1_Click(object sender, EventArgs e) { List <ProductInfo> lstData = _LstEntitys; MB.WinBase.Data.HViewConvertCfgParam cfgPars = MB.WinBase.LayoutXmlConfigHelper.Instance.GetHViewConvertCfgParam("testHViewDataConvert", string.Empty); cfgPars.DynamicColumnCaption = false; MB.WinBase.Data.HViewDataConvert <ProductInfo> convert = new MB.WinBase.Data.HViewDataConvert <ProductInfo>(cfgPars); _DataBinding.CreateDataBinding(convert, lstData, "DynamicGroup"); }
// /// <summary> /// 重新设置动态GridLayoutInfo 的信息。 /// </summary> /// <param name="convertObject"></param> /// <param name="gridViewLayoutInfo"></param> /// <returns></returns> public GridViewLayoutInfo ResetDynamicColumnViewLayout(MB.WinBase.Data.HViewDataConvert <T> convertObject, GridViewLayoutInfo gridViewLayoutInfo) { List <GridColumnLayoutInfo> settingBands = new List <GridColumnLayoutInfo>(); getDynamicBandSettings(gridViewLayoutInfo.GridLayoutColumns, ref settingBands); //GridColumnLayoutInfo settingBand = getDynamicBandSetting(gridViewLayoutInfo.GridLayoutColumns); foreach (GridColumnLayoutInfo settingBand in settingBands) { if (settingBand == null || settingBand.Childs.Count == 0) { continue; } var dynamicColumns = convertObject.DynamicColumns; int index = 0; GridColumnLayoutInfo settingClone = settingBand.Childs[0].Clone() as GridColumnLayoutInfo; settingBand.Childs.Clear(); for (int colIndex = 0; colIndex < dynamicColumns.Count; colIndex++) { MB.WinBase.Data.DynamicColumnInfo colInfo = dynamicColumns[colIndex]; GridColumnLayoutInfo dynamicCol = (GridColumnLayoutInfo)settingClone.CloneWithoutChilds(); settingBand.Childs.Add(dynamicCol); if (string.Compare(dynamicCol.Type, XtraGridViewHelper.BAND_TYPE_NAME, true) == 0) { dynamicCol.Childs = new List <GridColumnLayoutInfo>(); foreach (GridColumnLayoutInfo child in settingClone.Childs) { GridColumnLayoutInfo childColumn = child.CloneWithoutChilds(); childColumn.Name = MB.WinBase.Data.HViewDataConvert.CreateDynamicColumnFieldName(childColumn.Name, colIndex); dynamicCol.Childs.Add(childColumn); } } else { dynamicCol.Name = MB.WinBase.Data.HViewDataConvert.CreateDynamicColumnFieldName(dynamicCol.Name, colIndex); } dynamicCol.Text = string.IsNullOrEmpty(colInfo.Caption) ? colInfo.ColumnValueCode : colInfo.Caption; dynamicCol.Index = dynamicCol.Index + index; index += 1; } } return(gridViewLayoutInfo); }
private void button4_Click(object sender, EventArgs e) { List <ProductInfo> lstData = _LstEntitys; //MB.WinBase.Data.HViewConvertCfgParam cfgPars = new MB.WinBase.Data.HViewConvertCfgParam(); //cfgPars.DynamicColumnCaption = true; //cfgPars.RowAreaColumns = new string[] { "Name", "Code" }; //cfgPars.ConvertKeyColumns = new string[] { "Code" }; //cfgPars.ColumnAreaCfgInfo.ValueColumnName = "Size"; //cfgPars.ColumnAreaCfgInfo.CaptionColumnName = "SizeName"; //cfgPars.ColumnAreaCfgInfo.OrderColumnName = "Size"; //cfgPars.ColumnAreaCfgInfo.MappingColumnName = new string[] { "Count" }; MB.WinBase.Data.HViewConvertCfgParam cfgPars = MB.WinBase.LayoutXmlConfigHelper.Instance.GetHViewConvertCfgParam("testHViewDataConvert", string.Empty); cfgPars.DynamicColumnCaption = true; _DataConvert = new MB.WinBase.Data.HViewDataConvert <ProductInfo>(cfgPars); _DataBinding.CreateDataBinding(_DataConvert, lstData, "DynamicColumn"); }
/// <summary> /// 动态列绑定处理相关。 /// </summary> /// <param name="dataSource"></param> /// <param name="gridControl"></param> /// <param name="xmlFileName"></param> public void CreateDataBinding(MB.WinBase.Data.HViewDataConvert <T> convertObject, List <T> lstEntitys, string gridLayoutCfgName) { using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime("MB.WinClientDefault.Common.UIDynamicColumnBinding<" + typeof(T).FullName + ">.CreateDataBinding")) { _HViewConvertObject = convertObject; _CurrentEditEntitys = lstEntitys; var gridViewLayoutInfo = MB.WinBase.LayoutXmlConfigHelper.Instance.GetGridColumnLayoutInfo(_CurrentXmlFileName, gridLayoutCfgName); MB.XWinLib.XtraGrid.DynamicColumnBandGridHelper <T> dynamicBandHelper = new MB.XWinLib.XtraGrid.DynamicColumnBandGridHelper <T>(); _CurrentEditTable = convertObject.Convert(lstEntitys, _ColPropertys); onAfterDataConvert(); if (convertObject.ConvertCfgParam.DynamicColumnCaption) { gridViewLayoutInfo = dynamicBandHelper.ResetDynamicCaptionColumnViewLayout(convertObject, gridViewLayoutInfo); } else { gridViewLayoutInfo = dynamicBandHelper.ResetDynamicColumnViewLayout(convertObject, gridViewLayoutInfo); } var detailBindingParams = new MB.XWinLib.GridDataBindingParam(_XtraGrid, _CurrentEditTable, false); MB.XWinLib.XtraGrid.XtraGridEditHelper.Instance.CreateEditXtraGrid(detailBindingParams, _ColPropertys, _EditCols, gridViewLayoutInfo); //if (convertObject.ConvertCfgParam.DynamicColumnCaption) { iniDynamicBandColumns(); // } MB.XWinLib.XtraGrid.XtraGridViewHelper.Instance.SetGridViewNewItem(_XtraGrid, false); _XtraGrid.ReSetContextMenu(XtraContextMenuType.QuickInput | XtraContextMenuType.Export | XtraContextMenuType.SaveGridState); setDynamicColumnOnFocusedRowChanged(_AdvBandGridView.FocusedRowHandle); } }
/// <summary> /// 创建动态列并带有动态Caption 的描述信息。 /// </summary> /// <param name="convertObject"></param> /// <param name="gridViewLayoutInfo"></param> public GridViewLayoutInfo ResetDynamicCaptionColumnViewLayout(MB.WinBase.Data.HViewDataConvert <T> convertObject, GridViewLayoutInfo gridViewLayoutInfo) { GridColumnLayoutInfo settingBand = getDynamicBandSetting(gridViewLayoutInfo.GridLayoutColumns); if (settingBand == null || settingBand.Childs.Count == 0) { return(gridViewLayoutInfo); } var dynamicColumns = convertObject.DynamicColumns; GridColumnLayoutInfo settingClone = settingBand.Childs[0].Clone() as GridColumnLayoutInfo; settingBand.Childs.Clear(); for (int index = 0; index < convertObject.DynamicColumnCount; index++) { GridColumnLayoutInfo dynamicCol = (GridColumnLayoutInfo)settingClone.CloneWithoutChilds(); settingBand.Childs.Add(dynamicCol); if (string.Compare(dynamicCol.Type, XtraGridViewHelper.BAND_TYPE_NAME, true) == 0) { dynamicCol.Childs = new List <GridColumnLayoutInfo>(); foreach (GridColumnLayoutInfo child in settingClone.Childs) { GridColumnLayoutInfo childColumn = child.CloneWithoutChilds(); childColumn.Name = MB.WinBase.Data.HViewDataConvert.CreateDynamicColumnFieldName(childColumn.Name, index); dynamicCol.Childs.Add(childColumn); } } else { dynamicCol.Name = MB.WinBase.Data.HViewDataConvert.CreateDynamicColumnFieldName(dynamicCol.Name, index); } //dynamicCol.Text = colInfo.Caption; dynamicCol.Index = dynamicCol.Index + index; } return(gridViewLayoutInfo); }