Trung Nguyen
Top achievements
Rank 1
Trung Nguyen
asked on 12 Jul 2009, 02:10 AM
hi
i have code to merge row in radgird :
result:
<img src="http://img403.imageshack.us/img403/8326/65829250.jpg/>
http://img403.imageshack.us/img403/8326/65829250.jpg
cell mergered but lost border...how to draw border cell? help me plz
i have code to merge row in radgird :
for (int i = RadGrid1.Items.Count - 2 ; i > 0; i--) |
{ |
if (RadGrid1.Items[i][RadGrid1.Columns[0]].Text == RadGrid1.Items[i-1][RadGrid1.Columns[0]].Text) |
{ |
RadGrid1.Items[i-1][RadGrid1.Columns[0]].RowSpan = RadGrid1.Items[i][RadGrid1.Columns[0]].RowSpan < 2 ? 2 : RadGrid1.Items[i][RadGrid1.Columns[0]].RowSpan + 1; |
RadGrid1.Items[i][RadGrid1.Columns[0]].Visible = false; |
} |
} |
result:
<img src="http://img403.imageshack.us/img403/8326/65829250.jpg/>
http://img403.imageshack.us/img403/8326/65829250.jpg
cell mergered but lost border...how to draw border cell? help me plz
9 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 13 Jul 2009, 07:33 AM
Hello Trung,
Try adding the highlighted line of code given below and see if the cell borders display:
Thanks
Princy.
Try adding the highlighted line of code given below and see if the cell borders display:
protected void RadGrid1_PreRender(object sender, EventArgs e) |
{ |
for (int i = RadGrid1.Items.Count - 2; i > 0; i--) |
{ |
if (RadGrid1.Items[i][RadGrid1.Columns[0]].Text == RadGrid1.Items[i - 1][RadGrid1.Columns[0]].Text) |
{ |
RadGrid1.Items[i - 1][RadGrid1.Columns[0]].RowSpan = RadGrid1.Items[i][RadGrid1.Columns[0]].RowSpan < 2 ? 2 : RadGrid1.Items[i][RadGrid1.Columns[0]].RowSpan + 1; |
RadGrid1.Items[i][RadGrid1.Columns[0]].Visible = false; |
RadGrid1.Items[i][RadGrid1.Columns[0]].Text = " "; |
} |
} |
} |
Thanks
Princy.
0
Trung Nguyen
Top achievements
Rank 1
answered on 13 Jul 2009, 09:36 AM
thanks Princy
I tried but not working, help me...
I tried but not working, help me...
0
Andy Spears
Top achievements
Rank 1
answered on 31 Jul 2009, 02:24 PM
I ran into the same problem, and this was the only way I was able to get borders to show. My implementation of setting the RowSpan property is slightly different, but you should be able to get the gist of what needs to be done:
private string _previousHazerdousMaterial = ""; |
private TableCell _hazMatTableCell = null; |
protected void chemicalHazardsRadGrid_ItemDataBound( object sender, GridItemEventArgs e ) |
{ |
switch ( e.Item.ItemType ) |
{ |
case GridItemType.Item: |
case GridItemType.AlternatingItem: |
string currHazMat = ( ( HazardMaterialsList )e.Item.DataItem ).Material; |
if ( currHazMat != _previousHazerdousMaterial ) |
{ |
_previousHazerdousMaterial = currHazMat; |
_hazMatTableCell = ( ( GridDataItem )e.Item )["Material"]; |
//set the horizontal border of the first cell |
_hazMatTableCell.Style.Add( "border-top", "solid 1px #ededed" ); |
} |
else |
{ |
( ( GridDataItem )e.Item )["Material"].Visible = false; |
//set the border of the second cell. |
//Since the first cell is hidden, styles for the first cell are applied to this cell |
//which hides the left border by default. This will force the left border to show. |
( ( GridDataItem )e.Item )["Class"].Style.Add( "border-left", "solid 1px #ededed" ); |
if ( _hazMatTableCell.RowSpan == 0 ) |
_hazMatTableCell.RowSpan = 2; |
else |
_hazMatTableCell.RowSpan++; |
} |
break; |
} |
} |
0
Trung Nguyen
Top achievements
Rank 1
answered on 01 Sep 2009, 09:20 AM
i solved problem, thanks for all.
this code to merge row
this code to merge row
public static void MergeRows(RadGrid RadGrid1) |
{ |
for (int i = RadGrid1.Items.Count - 2; i > 0; i--) |
{ |
if (RadGrid1.Items[i][RadGrid1.Columns[0]].Text == RadGrid1.Items[i - 1][RadGrid1.Columns[0]].Text) |
{ |
RadGrid1.Items[i - 1][RadGrid1.Columns[0]].RowSpan = RadGrid1.Items[i][RadGrid1.Columns[0]].RowSpan < 2 ? 2 : RadGrid1.Items[i][RadGrid1.Columns[0]].RowSpan + 1; |
RadGrid1.Items[i][RadGrid1.Columns[0]].Visible = false; |
//RadGrid1.Items[i][RadGrid1.Columns[0]].Text = " "; |
} |
} |
//To mau lai cho Radgird |
foreach (GridDataItem dataItem in RadGrid1.Items) |
{ |
foreach (GridColumn col in RadGrid1.MasterTableView.RenderColumns) |
{ |
//if (dataItem[col.UniqueName].Text == string.Empty) |
dataItem[col.UniqueName].Style.Add("border-left", "solid 1px #ededed"); |
} |
} |
} |
0
Minh Đinh
Top achievements
Rank 1
answered on 16 Sep 2010, 08:17 AM
Thanks, that's what exactly what i've been looking for.
Minh
Minh
0
Dhamodharan
Top achievements
Rank 1
answered on 02 Oct 2012, 10:46 AM
Hi ,
Can we merge rows of radgrid through client side (javascript)..?
Can we merge rows of radgrid through client side (javascript)..?
0
Hello,
Marin
the Telerik team
This will be a cumbersome approach because you will have to modify the DOM tree dynamically on the client via javascript by changing row and col spans and removing cells from the table. So it is not recommended.
Regards,Marin
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
madhavi
Top achievements
Rank 1
answered on 03 Nov 2014, 04:46 AM
we are dynamically creating RadGrid.
We are merging rows similar rows in radgrid but it is working on postback only. It does not work first time page load.
Please help me with this problem.
We are merging rows similar rows in radgrid but it is working on postback only. It does not work first time page load.
Please help me with this problem.
0
Hi,
Page_Load is a too early event and the grid will not yet be rendered initially without postback. That's why it is recommended to use a later event like Page_PreRender or ItemCreated as shown in the code snippets from previous posts in the thread.
Regards,
Marin
Telerik
Page_Load is a too early event and the grid will not yet be rendered initially without postback. That's why it is recommended to use a later event like Page_PreRender or ItemCreated as shown in the code snippets from previous posts in the thread.
Regards,
Marin
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.