1. 程式人生 > >c#動態新增band 新增列 新增模板列程式碼示例

c#動態新增band 新增列 新增模板列程式碼示例

private DevExpress.XtraGrid.Views.BandedGrid.GridBand band;
        private DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn gridCol;
        private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit item;
        DataService dataService = DataService.GetInstance("DB_WCF_NetTcpBinding_OracleClient");
        private void AllocationCostForm_Load(object sender, EventArgs e)
        {   //初始化按鈕:1.按許可權建立按鈕;2.按鈕事件註冊
            long[] button = new long[] { BUTTONS.Button1, BUTTONS.Button2, BUTTONS.Button3 };
            ItemClickEventHandler[] eventHandler = new ItemClickEventHandler[] { this.Button1_Click, this.Button2_Click, this.Button3_Click };
            base.InitButton(button, eventHandler);
            //按鈕狀態初始化
            base.UpdateButtonStatus(new long[] { BUTTONS.Button1, BUTTONS.Button2, BUTTONS.Button3 }, new bool[] { true, true, true });
            DataTable dat_cbxm = dataService.DBAccess.Query("SQL_AllocationCostForm_select", new string[] { });
            gcGgcbFt.DataSource = dat_cbxm;
            DataTable dat_Ftlb = dataService.DBAccess.Query("SQL_t_cs_form", new string[] { "" });
            DataTable dt_lkSource = dataService.DBAccess.Query("SQL_AllocationCostForm_lookup", new string[] { });
            DataTable dtNew = new DataTable();
            if (dat_Ftlb.Rows.Count > 0)
            {
                for (int i = 0; i < dat_Ftlb.Rows.Count; i++)
                {
                    dtNew.Columns.Add(dat_Ftlb.Rows[i]["FCODE"].ToString(), typeof(string));
                }
                if (dtNew.Columns.Count > 0)
                {
                    foreach (DataColumn dc in dat_Ftlb.Columns)
                    {
                        DataRow drNew = dtNew.NewRow();
                        for (int i = 0; i < dat_Ftlb.Rows.Count; i++)
                        {
                            drNew[i] = dat_Ftlb.Rows[i][dc].ToString();
                        }
                        dtNew.Rows.Add(drNew);
                    }
                    if (dtNew.Columns.Count > 0)
                    {
                        for (int b = 0; b < dtNew.Columns.Count; b++)
                        {
                            band = new DevExpress.XtraGrid.Views.BandedGrid.GridBand();
                            item = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
                            gridCol = new DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn();
                            band.Name = dtNew.Rows[1][dtNew.Columns[b].ColumnName.ToString()].ToString();//dtNew.Columns[b].ColumnName.ToString();
                            gridCol.Name = dtNew.Columns[b].ColumnName.ToString();
                            gridCol.Caption = dtNew.Columns[b].Caption.ToString();
                            gridCol.FieldName = dtNew.Columns[b].ColumnName.ToString();
                            gridCol.VisibleIndex = gvGgcbFt.VisibleColumns.Count;
                            gcGgcbFt.RepositoryItems.Add(item);
                            item.Name = "lk" + dtNew.Columns[b].ColumnName.ToString();
                            item.NullText = "";
                            item.DataSource = dt_lkSource;
                            item.ValueMember = "FID";
                            item.DisplayMember = "FNAME";
                            item.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] {
                                                  new  DevExpress.XtraEditors.Controls.LookUpColumnInfo("FNAME", "名稱"),
                                                  new  DevExpress.XtraEditors.Controls.LookUpColumnInfo("FID", "ID", 20, DevExpress.Utils.FormatType.None, "", false, DevExpress.Utils.HorzAlignment.Default)});
                            gridCol.ColumnEdit = item;
                            gridCol.OptionsColumn.AllowMove = false;
                            gridCol.OptionsFilter.AllowFilter = false;
                            this.gridBand3.Children.Add(band);
                            this.band.Columns.Add(this.gridCol);
                            gcGgcbFt.RepositoryItems.Add(item);
                        }
                    }
                }
            }
        }