Gallery
JS Grid Custom Columns
<%@ Page Language="C#" Description="dotnetCHARTING Component" %>
<%@ Register TagPrefix="dotnet" Namespace="dotnetCHARTING" Assembly="dotnetCHARTING" %>
<%@ Import Namespace="System.Drawing" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.netCHARTING Sample</title>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Demonstrates populate two grids from an existing chart with custom column definitions.
Chart.Type = ChartType.Combo;
Chart.Width = 840;
Chart.Height = 400;
Chart.TempDirectory = "temp";
Chart.Debug = false;
Chart.DefaultSeries.Type = SeriesType.Line;
Chart.JS.Enabled = true;
Chart.JS.RenderCallback = "populateGrids";
Chart.JS.DataGrid.Enabled = true;
Chart.JS.DataGrid.EnableExportButton = false;
Chart.TitleBox.Position = TitleBoxPosition.Full;
Chart.TitleBox.Label.Text = "Chart Grid Samples";
Chart.LegendBox.Position = LegendBoxPosition.BottomMiddle;
// *DYNAMIC DATA NOTE*
// This sample uses random data to populate the chart. To populate
// a chart with database data see the following resources:
// - Classic samples folder
// - Help File > Data Tutorials
// - Sample: features/DataEngine.aspx
SeriesCollection mySC = getRandomData();
Chart.YAxis.FormatString = "c:0";
Chart.YAxis.Label.Text = "USD";
// Add the random data.
Chart.SeriesCollection.Add(mySC);
}
SeriesCollection getRandomData()
{
SeriesCollection SC = new SeriesCollection();
Random myR = new Random(1);
DateTime dt = new DateTime(2020, 12, 1);
Series Purchases = new Series();
Purchases.Name = "Purchases";
Series Taxes = new Series();
Taxes.Name = "Taxes";
Series Supplies = new Series();
Supplies.Name = "Supplies";
Series Rent = new Series();
Rent.Name = "Rent";
for (int b = 1; b < 7; b++)
{
Element e = new Element();
e.YValue = myR.Next(20, 200);
e.XDateTime = dt = dt.AddMonths(1);
Purchases.Elements.Add(e);
e = new Element();
e.YValue = myR.Next(20, 90);
e.XDateTime = dt;
Taxes.Elements.Add(e);
e = new Element();
e.YValue = myR.Next(20, 200);
e.XDateTime = dt;
Supplies.Elements.Add(e);
e = new Element();
e.YValue = myR.Next(90, 200);
e.XDateTime = dt;
Rent.Elements.Add(e);
}
SC.Add(Purchases);
SC.Add(Taxes);
SC.Add(Supplies);
SC.Add(Rent);
return SC;
}
</script>
<style type="text/css">
.dnc{
margin: 0px auto;
max-width:840px;
}
.myGrid{
display:inline-block;
margin-left:10px;
width:390px;
}
</style>
<script type="text/javascript">
function populateGrids(c){
c.toGrid('gridDiv',{ columns:'%seriesName,%name,%yValue,%percentOfSeries%'.split(',')});
c.toGrid('gridDiv2',{
columns:[
{header: 'Series', value:'%seriesName'},
{header: 'Quarter', value:'%name'},
{header: 'Units', value:'%yValue'},
{header: '%', value:'%percentOfSeries% of %seriesName', width:'200px'},
]
});
}
</script>
</head>
<body>
<div align="center">
<dotnet:Chart ID="Chart" runat="server" Width="840px" Height="600px" CssClass="dnc"/>
</div>
<div align="center" style="margin-left:20px; padding-left:10px;">
<div class="myGrid">
Custom columns with calculations
<div id="gridDiv"></div>
</div>
<div class="myGrid">
Custom columns & header
<div id="gridDiv2"></div>
</div>
</div>
</body>
</html>
<%@ Page Language="vb" Description="dotnetCHARTING Component" %>
<%@ Register TagPrefix="dotnet" Namespace="dotnetCHARTING" Assembly="dotnetCHARTING" %>
<%@ Import Namespace="System.Drawing" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.netCHARTING Sample</title>
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' Demonstrates populate two grids from an existing chart with custom column definitions.
Chart.Type = ChartType.Combo
Chart.Width = 840
Chart.Height = 400
Chart.TempDirectory = "temp"
Chart.Debug = False
Chart.DefaultSeries.Type = SeriesType.Line
Chart.JS.Enabled = True
Chart.JS.RenderCallback = "populateGrids"
Chart.JS.DataGrid.Enabled = True
Chart.JS.DataGrid.EnableExportButton = False
Chart.TitleBox.Position = TitleBoxPosition.Full
Chart.TitleBox.Label.Text = "Chart Grid Samples"
Chart.LegendBox.Position = LegendBoxPosition.BottomMiddle
' *DYNAMIC DATA NOTE*
' This sample uses random data to populate the chart. To populate
' a chart with database data see the following resources:
' - Classic samples folder
' - Help File > Data Tutorials
' - Sample: features/DataEngine.aspx
Dim mySC As SeriesCollection = getRandomData()
Chart.YAxis.FormatString = "c:0"
Chart.YAxis.Label.Text = "USD"
' Add the random data.
Chart.SeriesCollection.Add(mySC)
End Sub
Function getRandomData() As SeriesCollection
Dim SC As SeriesCollection = New SeriesCollection()
Dim myR As Random = New Random(1)
Dim dt As DateTime = New DateTime(2020, 12, 1)
Dim Purchases As Series = New Series()
Purchases.Name = "Purchases"
Dim Taxes As Series = New Series()
Taxes.Name = "Taxes"
Dim Supplies As Series = New Series()
Supplies.Name = "Supplies"
Dim Rent As Series = New Series()
Rent.Name = "Rent"
For b As Integer = 1 To 6
Dim e As Element = New Element()
e.YValue = myR.Next(20, 200)
dt = dt.AddMonths(1)
e.XDateTime = dt
Purchases.Elements.Add(e)
e = New Element()
e.YValue = myR.Next(20, 90)
e.XDateTime = dt
Taxes.Elements.Add(e)
e = New Element()
e.YValue = myR.Next(20, 200)
e.XDateTime = dt
Supplies.Elements.Add(e)
e = New Element()
e.YValue = myR.Next(90, 200)
e.XDateTime = dt
Rent.Elements.Add(e)
Next b
SC.Add(Purchases)
SC.Add(Taxes)
SC.Add(Supplies)
SC.Add(Rent)
Return SC
End Function
</script>
<style type="text/css">
.dnc{
margin: 0px auto;
max-width:840px;
}
.myGrid{
display:inline-block;
margin-left:10px;
width:390px;
}
</style>
<script type="text/javascript">
function populateGrids(c){
c.toGrid('gridDiv',{ columns:'%seriesName,%name,%yValue,%percentOfSeries%'.split(',')});
c.toGrid('gridDiv2',{
columns:[
{header: 'Series', value:'%seriesName'},
{header: 'Quarter', value:'%name'},
{header: 'Units', value:'%yValue'},
{header: '%', value:'%percentOfSeries% of %seriesName', width:'200px'},
]
});
}
</script>
</head>
<body>
<div align="center">
<dotnet:Chart ID="Chart" runat="server" Width="840px" Height="600px" CssClass="dnc"/>
</div>
<div align="center" style="margin-left:20px; padding-left:10px;">
<div class="myGrid">
Custom columns with calculations
<div id="gridDiv"></div>
</div>
<div class="myGrid">
Custom columns & header
<div id="gridDiv2"></div>
</div>
</div>
</body>
</html>
- Sample FilenameJsGridCustomColumns.aspx
- Version9.3
- Uses DatabaseNo