📄 defaultcs.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Telerik.QuickStart;
using Telerik.WebControls;
namespace Telerik.ChartExamplesCS.DrillDown2
{
/// <summary>
/// Summary description for _Default.
/// </summary>
public class DefaultCS: XhtmlPage
{
protected Telerik.WebControls.RadChart RadChart2;
protected Telerik.WebControls.RadChart RadChart1;
private void Page_Load(object sender, System.EventArgs e)
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("En-us");
if (!Page.IsPostBack)
{
GetAverageByDay();
}
GetEntirePicture();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.RadChart1.Click += new Telerik.WebControls.RadChart.ChartClickEventHandler(this.RadChart1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void GetAverageByDay()
{
using (OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("data.mdb")))
{
dbCon.Open();
System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand("SELECT * FROM GetAverageByDays", dbCon);
command.CommandType = CommandType.Text;
OleDbDataReader reader = command.ExecuteReader();
ChartSeries s = RadChart1.GetChartSeries(0);
s.Items.Clear();
s.Name = "Days";
RadChart1.Title1.Text = "Average Values By Days";
RadChart1.XAxis.Items.Clear();
while (reader.Read())
{
ChartSeriesItem item = new ChartSeriesItem();
item.YValue = (double) reader.GetDecimal(0);
item.ItemMap.ToolTip = "Click here to see the value changes for " + reader.GetString(1);
RadChart1.XAxis.AddItem(reader.GetString(1));
s.Items.Add(item);
}
}
}
private void GetEntirePicture()
{
using (OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("data.mdb")))
{
dbCon.Open();
System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand("Select min(MyDate), max(MyDate) from Table1;", dbCon);
command.CommandType = CommandType.Text;
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
DateTime minDate = reader.GetDateTime(0);
DateTime maxDate = reader.GetDateTime(1);
RadChart2.XAxis.AutoScale = false;
RadChart2.XAxis.AddRange(Math.Floor(minDate.ToOADate()), Math.Ceiling(maxDate.ToOADate()), 1);
}
reader.Close();
ChartSeries s = RadChart2.GetChartSeries(0);
s.Items.Clear();
s.Name = "Days";
RadChart2.Title1.Text = "All Data";
s.Type = ChartSeriesType.Line;
s.ShowLabels = false;
RadChart2.Gridlines.Visible = false;
command.CommandText = "Select * from table1";
reader = command.ExecuteReader();
while (reader.Read())
{
ChartSeriesItem item = new ChartSeriesItem();
item.YValue = (double) reader.GetDecimal(2);
item.XValue = (double) reader.GetDateTime(1).ToOADate();
s.Items.Add(item);
}
RadChart2.AddChartSeries(s);
}
}
private void GetDataByDay(string day)
{
using (OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("data.mdb")))
{
dbCon.Open();
string sqlCommand = string.Format("SELECT min(MyDate), max(MyDate) from Table1 where Format(MyDate,'dd.mm.yyyy') = '{0}';", day);
System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand(sqlCommand, dbCon);
command.CommandType = CommandType.Text;
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
double minTime = reader.GetDateTime(0).ToOADate();
double maxTime = reader.GetDateTime(1).ToOADate();
RadChart1.XAxis.AddRange(minTime, maxTime, 1 / 48.0d);
}
reader.Close();
ChartSeries s = RadChart1.GetChartSeries(0);
s.Items.Clear();
s.Name = "Days";
RadChart1.Title1.Text = day;
RadChart1.XAxis.AutoScale = false;
RadChart1.YAxis.AutoScale = true;
RadChart1.XAxis.Items.Clear();
RadChart1.XAxis.ValueFormat = ChartValueFormat.ShortTime;
RadChart1.XAxis.AutoScale = false;
RadChart1.XAxis.LayoutStyle = ChartAxisLayoutStyle.Normal;
RadChart1.XAxis.CustomFormat = "hh:mm";
RadChart1.YAxis.AxisStyle = ChartYAxisStyle.Extended;
s.PointSize = 0;
s.Type = ChartSeriesType.Line;
s.ShowLabels = false;
RadChart1.Gridlines.Visible = false;
sqlCommand = string.Format("SELECT * from Table1 where Format(MyDate,'dd.mm.yyyy') = '{0}';", day);
command.CommandText = sqlCommand;
reader = command.ExecuteReader();
while (reader.Read())
{
ChartSeriesItem item = new ChartSeriesItem();
item.YValue = (double) reader.GetDecimal(2);
item.XValue = (double) reader.GetDateTime(1).ToOADate();
s.Items.Add(item);
}
reader.Close();
}
}
private void RadChart1_Click(object sender, Telerik.WebControls.ChartClickEventArgs args)
{
if (args.Series.Type == ChartSeriesType.Bar)
{
GetDataByDay(RadChart1.XAxis.Items[args.SeriesItem.Index].Label);
}
else
{
GetDataByDay(RadChart1.Title1.Text);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -