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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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");
        }
Exemple #5
0
        /// <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);
        }