Hi,
My chart has more than one series (the number always changes).
I want to add these series dynamically into my chart (sometimes 2 sometimes 5 series). I tried to use an array but it did not work. How can I add the (changing number) chart series dynamically? and what is the problem with the array? (Please see the code below)
Thanks,
Ervin
Dim rowNumber As Integer = ds.Tables(0).Rows.Count
Dim myChartSeries(rowNumber - 1) As ChartSeries
For index As Integer = 0 To rowNumber - 1
With myChartSeries(index)
.Name = s1
.Appearance.TextAppearance.TextProperties.Color = Color.Blue
.Type = ChartSeriesType.Line
.Appearance.LabelAppearance.Visible = True
.Appearance.PointMark.Dimensions.AutoSize = False
.Appearance.PointMark.Dimensions.Width = 7
.Appearance.PointMark.Dimensions.Height = 7
.Appearance.PointMark.FillStyle.MainColor = Color.Black
.Appearance.PointMark.Visible = True
For index2 As Integer = 0 To 5
Dim mychartSeriesItem As Integer = Int(ds.Tables(0).Rows(0).Item(index2 + 1))
myChartSeries(index2).AddItem(mychartSeriesItem)
Next
End With
chart.AddChartSeries(myChartSeries(index))
Next
chart.DataBind()
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
telerik:RadStyleSheetManager
id
=
"RadStyleSheetManager1"
runat
=
"server"
/>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
</
telerik:RadScriptManager
>
<
script
type
=
"text/javascript"
>
//Put your JavaScript code here.
</
script
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
EnableAJAX
=
"true"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"Timer1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
div
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
GridLines
=
"None"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnUpdateCommand
=
"RadGrid1_UpdateCommand"
>
<
MasterTableView
Name
=
"RadGrid1TableView"
AutoGenerateColumns
=
"false"
ShowHeader
=
"true"
CommandItemDisplay
=
"None"
EditMode
=
"InPlace"
AllowPaging
=
"true"
>
<
PagerStyle
AlwaysVisible
=
"true"
Mode
=
"NextPrevNumericAndAdvanced"
Wrap
=
"false"
/>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
EditText
=
"Edit"
UniqueName
=
"EditButton"
/>
<
telerik:GridBoundColumn
DataField
=
"Value1"
HeaderText
=
"Value1"
SortExpression
=
"Value1"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value2"
HeaderText
=
"Value2"
SortExpression
=
"Value2"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value2"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value3"
HeaderText
=
"Value3"
SortExpression
=
"Value3"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value3"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value4"
HeaderText
=
"Value4"
SortExpression
=
"Value4"
AllowFiltering
=
"false"
AllowSorting
=
"false"
UniqueName
=
"Value4"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
asp:Timer
ID
=
"Timer1"
runat
=
"server"
OnTick
=
"Timer1_Tick"
Interval
=
"3000"
/>
</
div
>
</
form
>
</
body
>
</
html
>
using
System;
using
System.Data;
using
System.Web.UI;
using
Telerik.Web.UI;
public
partial
class
Default : Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
Timer1_Tick(
object
sender, EventArgs e)
{
RadGrid1.Rebind();
}
protected
void
RadGrid1_NeedDataSource(
object
source, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = GetRandomData();
}
private
static
DataTable GetRandomData()
{
DataTable dt =
new
DataTable();
Random rand =
new
Random();
dt.Columns.Add(
new
DataColumn(
"Value1"
,
typeof
(
double
)));
dt.Columns.Add(
new
DataColumn(
"Value2"
,
typeof
(
double
)));
dt.Columns.Add(
new
DataColumn(
"Value3"
,
typeof
(
double
)));
dt.Columns.Add(
new
DataColumn(
"Value4"
,
typeof
(
double
)));
for
(
int
x = 0; x < 10; x++)
{
DataRow row = dt.NewRow();
row[
"Value1"
] = rand.Next();
row[
"Value2"
] = rand.Next();
row[
"Value3"
] = rand.Next();
row[
"Value4"
] = rand.Next();
dt.Rows.Add(row);
}
return
dt;
}
protected
void
RadGrid1_UpdateCommand(
object
source, GridCommandEventArgs e)
{
// Do the update
}
}