Hi everyone !
I am currently working with grid, generated on server-side depending on a parameter, with multi-header function.
Here is my code and some explanations :
- First part : Generating the first headergroup column. It contains my labels.
- Second part (first "for" loop) : Generate all my column headers
- Third part (second "for" loop) : Generate the databoundcolumns. I will bind data with it.
my headergroups are correctly generated.
So, i do my databinding with static data from a DataTable :
DataTable column names are the same than databoundcolumn inside my grid.
But there is a problem. See the first attachement : "grid.jpg". The binding seems to be done 2 times.
In fact, i just want to remove the right part of the generated grid. ( the big columns col0, col1, col2 .. etc ...Ã ).
So, i checked the HTML code and it seems that my datatable columns generate a columngroup on the same level that my first columngroup. See the second attachement : "htmlcode.jpg"
Am i doing it wrong ? Is there a solution ?
Many thanks for your help !
I am currently working with grid, generated on server-side depending on a parameter, with multi-header function.
Here is my code and some explanations :
- First part : Generating the first headergroup column. It contains my labels.
- Second part (first "for" loop) : Generate all my column headers
- Third part (second "for" loop) : Generate the databoundcolumns. I will bind data with it.
//Indices int i_incrementA = 0, i_incrementB = 0; // Return the number of molds we are working for with the samples int i_gridLines = l_resMou[0].OBJ_RESULTAT.OBJ_PRELEV.LST_MOULE.Count(); // Return the number of controls we are working on. int i_gridColumns = l_resMou[0].OBJ_RESULTAT.OBJ_PRELEV.LST_RESULTAT.Count(); long i_currentResult = 0; long i_currentMold = 0; GridColumnGroup GCG_headerGroup = new GridColumnGroup(); GridBoundColumn GCO_columns = new GridBoundColumn(); // Add the first column wich will content mold numbers. // First header row : Controls GCG_headerGroup.Name = "control0"; GCG_headerGroup.HeaderText = ""; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); //Second header row : Buttons GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "buttons0"; GCG_headerGroup.HeaderText = ""; GCG_headerGroup.ParentGroupName = "control0"; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Third header row : Max GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "max0"; GCG_headerGroup.HeaderText = "Max :"; GCG_headerGroup.ParentGroupName = "buttons0"; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Fourth header row : MaxWarn GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "maxWarn0"; GCG_headerGroup.HeaderText = "Warn :"; GCG_headerGroup.ParentGroupName = "max0"; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Fifth header row : Target GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "target0"; GCG_headerGroup.HeaderText = "Target :"; GCG_headerGroup.ParentGroupName = "maxWarn0"; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Sixth header row : MinWarn GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "minWarn0"; GCG_headerGroup.HeaderText = "Warn :"; GCG_headerGroup.ParentGroupName = "target0"; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Seventh header row : Min GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "min0"; GCG_headerGroup.HeaderText = "Min :"; GCG_headerGroup.ParentGroupName = "minWarn0"; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); for (i_incrementB = 0; i_incrementB < i_gridColumns; i_incrementB++) { i_currentResult = l_resMou[0].OBJ_RESULTAT.OBJ_PRELEV.LST_RESULTAT[i_incrementB].RECLEUNIK; i_currentMold = l_resMou[0].OBJ_RESULTAT.OBJ_PRELEV.LST_MOULE[i_incrementB].MOCLEUNIK; // Create a headerGroup for the control name. GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "control" + (i_incrementB + 1); GCG_headerGroup.HeaderText = l_resMou.Where(r => r.OBJ_RESULTAT.RECLEUNIK == i_currentResult & r.OBJ_MOULE.MOCLEUNIK == i_currentMold).Single<EntityRESMOU>().OBJ_RESULTAT.OBJ_TOLERANCES.OBJ_CONTROLE.OBJ_TYPECTRL.NOMTYPE; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // buttons header groups GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "buttons" + (i_incrementB + 1); GCG_headerGroup.ParentGroupName = "control" + (i_incrementB + 1); GCG_headerGroup.HeaderText = "buttons"; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Tolerances Max GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "max" + (i_incrementB + 1); GCG_headerGroup.ParentGroupName = "buttons" + (i_incrementB + 1); GCG_headerGroup.HeaderText = ""; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Tolerances MaxWarn GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "maxWarn" + (i_incrementB + 1); GCG_headerGroup.ParentGroupName = "max" + (i_incrementB + 1); GCG_headerGroup.HeaderText = ""; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Tolerances Target GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "target" + (i_incrementB + 1); GCG_headerGroup.ParentGroupName = "maxWarn" + (i_incrementB + 1); GCG_headerGroup.HeaderText = ""; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Tolerances MinWarn GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "minWarn" + (i_incrementB + 1); GCG_headerGroup.ParentGroupName = "target" + (i_incrementB + 1); GCG_headerGroup.HeaderText = ""; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); // Tolerances Target GCG_headerGroup = new GridColumnGroup(); GCG_headerGroup.Name = "min" + (i_incrementB + 1); GCG_headerGroup.ParentGroupName = "minWarn" + (i_incrementB + 1); GCG_headerGroup.HeaderText = ""; GRD_CONTROLLIST.MasterTableView.ColumnGroups.Add(GCG_headerGroup); } // Data fields // WARNING : Be careful of the column name which must be the same as the datasource column name. for (i_incrementB=0;i_incrementB<i_gridColumns+1;i_incrementB++) { GCO_columns = new GridBoundColumn(); GCO_columns.ColumnGroupName = "min" + i_incrementB; GCO_columns.UniqueName = "col" + i_incrementB; GCO_columns.DataField = "col" + i_incrementB; GCO_columns.HeaderText = "col" + i_incrementB; GRD_CONTROLLIST.MasterTableView.Columns.Add(GCO_columns); }}my headergroups are correctly generated.
So, i do my databinding with static data from a DataTable :
DataTable TBL_setOutResults = new DataTable();for (int i = 0; i < 9; i++){ TBL_setOutResults.Columns.Add("col"+i);}TBL_setOutResults.Rows.Add("#6", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#12", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#16", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#17", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#20", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#24", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#32", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#33", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#34", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#36", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#41", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#47", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#52", "10", "10", "10", "10", "10", "10", "10", "10");TBL_setOutResults.Rows.Add("#55", "10", "10", "10", "10", "10", "10", "10", "10");GRD_CONTROLLIST.DataSource = TBL_setOutResults;GRD_CONTROLLIST.DataBind();DataTable column names are the same than databoundcolumn inside my grid.
But there is a problem. See the first attachement : "grid.jpg". The binding seems to be done 2 times.
In fact, i just want to remove the right part of the generated grid. ( the big columns col0, col1, col2 .. etc ...Ã ).
So, i checked the HTML code and it seems that my datatable columns generate a columngroup on the same level that my first columngroup. See the second attachement : "htmlcode.jpg"
Am i doing it wrong ? Is there a solution ?
Many thanks for your help !
- ASP.NET version: 4.0
- OS: WS2008R2
- exact browser version: Firefox 13.0
- exact version of the Telerik product : RadControls for ASP.NET AJAX Q2 2012
- preferred programming language : C#