We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

Backcolor

Hey, I would like to change the background color for one row in my databound grid. I am a little confused as to why the first statement below does not work but the second one does. this.gridWeek1Session1.Model.RowStyles[2].BackColor = System.Drawing.Color.LightCyan; this.gridWeek1Session1.Model.ColStyles[2].BackColor = System.Drawing.Color.LightCyan; For my purposes of changing the backcolor, using the PrepareViewStyleInfo is too much work because I am using multiple grids on my interface. I really would like a one liner to change the row backcolor. My version of the grid is an older version so it could be something that was fixed in the current versions. Mine is 1.6.1.8. Cheers, JF

9 Replies

AD Administrator Syncfusion Team August 25, 2004 04:23 PM UTC

ColStyles[] are used in GridControl. For a GridDataBoundGrid, you use GridBoundColumns. Here is a KB link. http://www.syncfusion.com/Support/article.aspx?id=562


JF Jim Frapper August 25, 2004 04:38 PM UTC

Hey Clay, Thanks for getting back to me so fast. If you take a look at my previous post, you will notice that I didn''t have any problems with setting the column styles. My difficulty was setting the row styles. JF


JF Jim Frapper August 25, 2004 05:20 PM UTC

Hey Clay, I seem to have found my answer. http://www.syncfusion.com/Support/article.aspx?id=561 You cant do it with a one liner. Dam Cheers, JF


BI Bill February 16, 2005 01:35 AM UTC

Hey guys, In a data bound grid, can you change the backcolor of a cell that is double-clicked? I can''t seem to get this to work. Thanks, Bill >Hey Clay, > >I seem to have found my answer. > >http://www.syncfusion.com/Support/article.aspx?id=561 > >You cant do it with a one liner. Dam > >Cheers, >JF


AD Administrator Syncfusion Team February 16, 2005 02:05 AM UTC

You would need to do this through PrepareViewStyleInfo. Try setting this property: this.gridDataBoundGrid1.ActivateCurrentCellBehavior = GridCellActivateAction.None; and handling these events.
ArrayList doubleClickedCells = new ArrayList();
private void gridDataBoundGrid1_DoubleClick(object sender, EventArgs e)
{
	int row, col;
	Point pt = this.gridDataBoundGrid1.PointToClient(Cursor.Position);
	if(this.gridDataBoundGrid1.PointToRowCol(pt, out row, out col))
	{
		int code = GetLookUpCode(row, col);
		if(doubleClickedCells.IndexOf(code) == -1)
			doubleClickedCells.Add(code);
			else
			doubleClickedCells.Remove(code);
		this.gridDataBoundGrid1.RefreshRange(GridRangeInfo.Cell(row, col), true);
	}
}
private void gridDataBoundGrid1_PrepareViewStyleInfo(object sender, GridPrepareViewStyleInfoEventArgs e)
{
	if(doubleClickedCells.IndexOf(GetLookUpCode(e.RowIndex, e.ColIndex)) > -1)
	{
		e.Style.BackColor = Color.Blue;
	}
}



BI Bill February 16, 2005 03:48 PM UTC

Clay, Thanks for the quick response. I have tried yoru sample. What does GridCellActiviateAction do or not do? and what library is GetLookUpCode? I teach programming classes. At the end of the sessions, I let the students try and stump me. Someone asked this. As I tried, I was bragging how easy controls make coding. I guess I should have researched a bit more. Thanks Again, Bill >You would need to do this through PrepareViewStyleInfo. > >Try setting this property: > >this.gridDataBoundGrid1.ActivateCurrentCellBehavior = GridCellActivateAction.None; > > >and handling these events. >
>ArrayList doubleClickedCells = new ArrayList();
>private void gridDataBoundGrid1_DoubleClick(object sender, EventArgs e)
>{
>	int row, col;
>	Point pt = this.gridDataBoundGrid1.PointToClient(Cursor.Position);
>	if(this.gridDataBoundGrid1.PointToRowCol(pt, out row, out col))
>	{
>		int code = GetLookUpCode(row, col);
>		if(doubleClickedCells.IndexOf(code) == -1)
>			doubleClickedCells.Add(code);
>			else
>			doubleClickedCells.Remove(code);
>		this.gridDataBoundGrid1.RefreshRange(GridRangeInfo.Cell(row, col), true);
>	}
>}
>private void gridDataBoundGrid1_PrepareViewStyleInfo(object sender, GridPrepareViewStyleInfoEventArgs e)
>{
>	if(doubleClickedCells.IndexOf(GetLookUpCode(e.RowIndex, e.ColIndex)) > -1)
>	{
>		e.Style.BackColor = Color.Blue;
>	}
>}
>
>


AD Administrator Syncfusion Team February 16, 2005 04:01 PM UTC

The ActivateCurrentCellBehavior controls what happens when a cell becomes current. Setting it to none means that double-clicking the cell will not activate the cell control for editing. If you have it set to something else, then clicking the cell will activate it, and the seoncd click in the double click goes to the cell control. In this case, grid.DoubleClick is not raised (instead grid.CurrentCellControlDoubleClick is raised). So, setting this property to none just makes sure grid.DoubleClick is hit. The GetLookUpCode method was just something to generate a unique code for a row and column. I should have listed a sample such as this: private int GetLookUpCode(int row, int col) { return 10000 * col + row; }


BI Bill February 16, 2005 05:52 PM UTC

Clay, Thanks a bunch. I had to change a line , maybe a version issue? Regardless, I would have never thought to capture the doule click in the grid itself: this.gridDataBoundGrid1.RefreshRange(gridDataBoundGrid1.GridCellsRange, true); Bill >The ActivateCurrentCellBehavior controls what happens when a cell becomes current. Setting it to none means that double-clicking the cell will not activate the cell control for editing. If you have it set to something else, then clicking the cell will activate it, and the seoncd click in the double click goes to the cell control. In this case, grid.DoubleClick is not raised (instead grid.CurrentCellControlDoubleClick is raised). So, setting this property to none just makes sure grid.DoubleClick is hit. > >The GetLookUpCode method was just something to generate a unique code for a row and column. I should have listed a sample such as this: > >private int GetLookUpCode(int row, int col) >{ > return 10000 * col + row; >} >


BI Bill February 16, 2005 05:56 PM UTC

Sorry, to bother you again. This answers the question, but we lose the ability to edit the field. Is there a method I can call to allow this to happen inside the gridDataBoundGrid1_PrepareViewStyleInfo? Bill

Loader.
Live Chat Icon For mobile
Up arrow icon