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

Cell Renderer

I''m using a GridGroupingControl and I am wondering what is the easiest way to create a custom renderer. There is no user input in the grid and all the data is driven by a datasource. I need this renderer: 1) Depending on whether the value in the column is less than or greater than a billion, display "M" or "B" at the end. So 100,000 -> .1M. 1,000,000,000 -> 1B

3 Replies

AD Administrator Syncfusion Team December 13, 2005 11:22 PM UTC

The simplest way to handle this is to subscribe to the TableControlDrawCellDisplayText.
private void gridGroupingControl1_TableControlDrawCellDisplayText(object sender, GridTableControlDrawCellDisplayTextEventArgs e)
{
	GridTableCellStyleInfo style = e.Inner.Style as GridTableCellStyleInfo;
	if(style != null && (style.TableCellIdentity.TableCellType == GridTableCellType.RecordFieldCell 
		|| style.TableCellIdentity.TableCellType == GridTableCellType.AlternateRecordFieldCell)
		&& style.TableCellIdentity.Column != null
		&& style.TableCellIdentity.Column.Name == "Col1")
	{
		double d = (double)style.CellValue;
		if(d > 1000000000)
		{
			e.Inner.DisplayText = string.Format("{0:#.##}B", d / 1000000000);
		}
		else
		{
			e.Inner.DisplayText = string.Format("{0:#.##}M", d / 1000000);
		}
	}
}


ST Stephen December 14, 2005 01:02 AM UTC

Thanks Clay. Is there a way to do this using a renderer class that I can just attach to whichever columns I choose? Thanks. >The simplest way to handle this is to subscribe to the TableControlDrawCellDisplayText. > >
>private void gridGroupingControl1_TableControlDrawCellDisplayText(object sender, GridTableControlDrawCellDisplayTextEventArgs e)
>{
>	GridTableCellStyleInfo style = e.Inner.Style as GridTableCellStyleInfo;
>	if(style != null && (style.TableCellIdentity.TableCellType == GridTableCellType.RecordFieldCell 
>		|| style.TableCellIdentity.TableCellType == GridTableCellType.AlternateRecordFieldCell)
>		&& style.TableCellIdentity.Column != null
>		&& style.TableCellIdentity.Column.Name == "Col1")
>	{
>		double d = (double)style.CellValue;
>		if(d > 1000000000)
>		{
>			e.Inner.DisplayText = string.Format("{0:#.##}B", d / 1000000000);
>		}
>		else
>		{
>			e.Inner.DisplayText = string.Format("{0:#.##}M", d / 1000000);
>		}
>	}
>}
>


AD Administrator Syncfusion Team December 14, 2005 01:54 AM UTC

You could use this code from a renderer but it might be simpler to just wrap it in a helper class. Here is a little sample. http://www.syncfusion.com/Support/user/uploads/GGC_TextBoxFilter_45059fa0.zip

Loader.
Live Chat Icon For mobile
Up arrow icon