I'm displaying a relatively simple chart plotting time of the xaxis and counts on the yaxis. the chart displays fine, but I simply cannot get the xaxis labels to display as time values! I've tried all the suggestions I could find in the forums with no luck.
Here is my aspx file:
And here is my codebehind:
The values are all correct, but the xaxis labels display as 41047, 41047.0416, ... 41047.9999 (the last digits of the labels are truncated)
Here is my aspx file:
<%@ Page Title="Tickets Received by Time of Day" Language="VB" AutoEventWireup="false" CodeFile="TixByTime.aspx.vb" Inherits="Statistics_Misc_TixByTime" MasterPageFile="~/MasterPage.master" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Charting" TagPrefix="telerik" %>
<
asp:Content
ID
=
"cpHeadContent"
ContentPlaceHolderID
=
"mpHeadContent"
runat
=
"server"
>
</
asp:Content
>
<
asp:Content
ID
=
"cpSideMenuContent"
ContentPlaceHolderID
=
"mpSideMenuContent"
runat
=
"server"
>
</
asp:Content
>
<
asp:Content
ID
=
"cpMainContent"
ContentPlaceHolderID
=
"mpMainContent"
runat
=
"server"
>
<
telerik:RadChart
ID
=
"rcChart2"
runat
=
"server"
Height
=
"500px"
Width
=
"900px"
Skin
=
"WebBlue"
>
</
telerik:RadChart
>
</
asp:Content
>
And here is my codebehind:
Imports
Workforce
Imports
System.Data
Imports
Telerik.Charting
Imports
System.Data.SqlClient
Partial
Class
Statistics_Misc_TixByTIme
Inherits
System.Web.UI.Page
Protected
Sub
Page_Load(sender
As
Object
, e
As
System.EventArgs)
Handles
Me
.Load
SetupChart()
LoadData()
End
Sub
Private
Sub
SetupChart()
Dim
dStart
As
Double
= DateTime.Today.ToOADate()
Dim
dEnd
As
Double
= DateTime.Today.AddDays(1).ToOADate()
Dim
dHourStep
As
Double
= (1 / 24)
With
rcChart2
.ChartTitle.TextBlock.Text =
"Tickets Received by Time of Day"
.SeriesOrientation = ChartSeriesOrientation.Vertical
With
.PlotArea.XAxis
.AutoScale =
False
.IsZeroBased =
False
.LayoutMode = Styles.ChartAxisLayoutMode.Inside
.AddRange(dStart, dEnd, dHourStep)
.Appearance.MajorGridLines.Visible =
False
.Appearance.ValueFormat = Styles.ChartValueFormat.ShortTime
.Appearance.CustomFormat =
"hh:mm tt"
.Appearance.LabelAppearance.RotationAngle = 90
.Appearance.LabelAppearance.Position.AlignedPosition = Styles.AlignedPositions.Top
End
With
With
.PlotArea.YAxis
.
Step
= 1
End
With
Dim
oSeries
As
New
ChartSeries()
With
oSeries
.Name =
"TicketCounts2"
.Type = ChartSeriesType.Area
.Appearance.ShowLabels =
False
End
With
.Series.Add(oSeries)
End
With
End
Sub
Private
Sub
LoadData()
Dim
oSeries
As
ChartSeries = rcChart2.Series(0)
Dim
oConn
As
SqlConnection =
Nothing
Dim
oReader
As
SqlDataReader =
Nothing
Dim
oCmd
As
SqlCommand =
New
SqlCommand()
Dim
sSQL
As
String
Try
Dim
sConn
As
String
= Profile.Company.ConnectionString
oConn =
New
SqlConnection(sConn)
oConn.Open()
sSQL = <sql>
SELECT Substring(Convert(nchar(8),recvdatetime,8), 1, 5) AS daTime
,Count(*) AS daCount
FROM cwtg..tix4tbl
group by substring(convert(nchar(8),recvdatetime,8), 1, 5)
order by daTime
</sql>.Value
oCmd.CommandText = sSQL
oCmd.Connection = oConn
oReader = oCmd.ExecuteReader()
Do
While
oReader.Read
Dim
dTime
As
Double
= DateTime.Parse(oReader.GetString(oReader.GetOrdinal(
"daTime"
))).ToOADate()
Dim
dCount
As
Double
= oReader.GetInt32(oReader.GetOrdinal(
"daCount"
))
Dim
oItem
As
New
ChartSeriesItem()
oItem.XValue = dTime
oItem.YValue = dCount
oSeries.Items.Add(oItem)
Loop
Finally
If
oReader IsNot
Nothing
Then
oReader.Close()
oConn.Close()
oConn.Dispose()
End
Try
End
Sub
End
Class
The values are all correct, but the xaxis labels display as 41047, 41047.0416, ... 41047.9999 (the last digits of the labels are truncated)