| public override void PrepareCell(TableCell cell, GridItem item) |
| { |
| base.PrepareCell(cell, item); |
| if (UseAvailableValuesForDataSource && item is GridDataItem) |
| { |
| if (rcBox.Items.FindItemByText(cell.Text) == null) |
| { |
| rcBox.Items.Add(new RadComboBoxItem(cell.Text)); |
| } |
| } |
| } |
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>RadAlert</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<telerik:RadWindowManager ID="RadWindowManager1" runat="server">
</telerik:RadWindowManager>
<asp:Button ID="AlertButton" runat="server" OnClick="AlertButton_Click" Text="Alert from server" />
<asp:Button ID="RadAlertButton" runat="server" OnClick="RadAlertButton_Click" Text="RadAlert from server" />
<input id="RadAlertButtonClient" type="button" value="RadAlert from client" onclick="radalert('Some data from client!');"/>
</form>
</body>
</html>
Default.aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void AlertButton_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(Page, typeof(Page), "AlertScript", "alert('Some data from server!');", true);
}
protected void RadAlertButton_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(Page, typeof(Page), "RadAlertScript", "radalert('Some data from server!');", true);
}
}
Imports System.DrawingImports Telerik.Web.UIImports DevExpress.Web.ASPxGaugesImports DevExpress.Web.ASPxGauges.BaseImports DevExpress.XtraGauges.BaseImports DevExpress.XtraGauges.Core.DrawingImports DevExpress.XtraGauges.Core.ModelImports DevExpress.XtraGauges.Core.BaseImports DevExpress.Web.ASPxGauges.Gauges.CircularPublic Class uChart Inherits System.Web.UI.UserControl Private _userName As String = ""#Region "Page Init" Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 'TODO: Remove when security get's set up _userName = "wahiggi" End Sub#End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load Dim lbl As System.Web.UI.WebControls.Label = CType(Me.Controls(1), System.Web.UI.WebControls.Label) Dim pArray() As String = Split(lbl.Text, "|") lblServiceKey.Text = Trim(pArray(0)) lblMetricKey.Text = Trim(pArray(1)) lblType.Text = Trim(pArray(3)) BuildRadChart() End Sub#Region "Building Rad Html Chart" Private Sub BuildRadChart() RadHtmlChart1.Visible = True ASPxGaugeControl1.Visible = False Dim mm As String = lblMetricKey.Text Dim sKey As String = lblServiceKey.Text Dim dsh As New DashHelper() Dim startDate As String = "" Dim endDate As String = "" Dim dAr As Array = Split(dsh.GetDates(rcbFreq.SelectedValue), "|") startDate = dAr(0) endDate = dAr(1) Dim dt As DataTable = dsh.GetGraphValues(sKey, mm, startDate, endDate, rcbFreq.SelectedValue, "False", "Capacity") If RadHtmlChart1.PlotArea.Series.Count <> 0 Then RadHtmlChart1.PlotArea.Series.RemoveAt(0) End If If dt.Rows.Count > 0 Then Dim chartTitle As String = "" chartTitle = dt.Rows(0).Item(6).ToString() chartTitle = chartTitle & " By Geography" RadHtmlChart1.ID = "rHTMLChart7" RadHtmlChart1.Height = Unit.Pixel(250) RadHtmlChart1.ChartTitle.Text = chartTitle RadHtmlChart1.Legend.Appearance.Position = Telerik.Web.UI.HtmlChart.ChartLegendPosition.Right Select Case lblType.Text Case "bar" Dim chartData As BarSeries = RadBarSeries(dt) RadHtmlChart1.PlotArea.Series.Add(chartData) Case "line" Dim chartData As LineSeries = RadLineSeries(dt) RadHtmlChart1.PlotArea.Series.Add(chartData) End Select RadHtmlChart1.PlotArea.XAxis.LabelsAppearance.RotationAngle = -45 RadHtmlChart1.PlotArea.XAxis.DataLabelsField = "DateKey" RadHtmlChart1.DataSource = dt RadHtmlChart1.DataBind() End If End Sub#End Region#Region "Building Gauge Chart" Private Sub BuildDevXChart() RadHtmlChart1.Visible = False ASPxGaugeControl1.Visible = True Dim mm As String = lblMetricKey.Text Dim sKey As String = lblServiceKey.Text Dim dsh As New DashHelper() Dim startDate As String = "" Dim endDate As String = "" Dim dAr As Array = Split(dsh.GetDates(rcbFreq.SelectedValue), "|") startDate = dAr(0) endDate = dAr(1) Dim dt As DataTable = dsh.GetGraphValues(sKey, mm, startDate, endDate, rcbFreq.SelectedValue, "False", "Capacity") If dt.Rows.Count > 0 Then Dim unit As String = "" unit = dt.Rows(0).Item(7).ToString() unit = FormatUit(unit) Dim minVal As Decimal = CDec(dt.Rows(0).Item(2).ToString()) Dim maxVal As Decimal = CDec(dt.Rows(0).Item(2).ToString()) Dim tot As Decimal = 0 Dim valCount As Integer = dt.Rows.Count For Each row As DataRow In dt.Rows Dim val As Decimal = CDec(row.Item(2).ToString()) If val < minVal Then minVal = val If val > maxVal Then maxVal = val tot += val Next If maxVal - minVal < 7 Then minVal = maxVal - 7 If minVal < 0 Then minVal = 0 maxVal = 7 End If End If Dim avg As Decimal = tot / valCount avg = Math.Round(avg, 2) avg = Math.Round(avg, 2) minVal = Math.Round(minVal, 2) maxVal = Math.Round(maxVal, 2) ASPxGaugeControl1.Gauges.Clear() Dim circularGauge As CircularGauge = ASPxGaugeControl1.AddGauge(GaugeType.Circular) circularGauge.AddDefaultElements() Dim scale As ArcScaleComponent = circularGauge.Scales(0) Dim sCenter As PointF2D sCenter.X = 125 sCenter.Y = 165 scale.Center = sCenter scale.RadiusX = 107 scale.RadiusY = 107 scale.StartAngle = -180 scale.EndAngle = 0 scale.MinValue = minVal scale.MaxValue = maxVal scale.Value = avg scale.MajorTickCount = 7 scale.MajorTickmark.FormatString = "{0:F0}" scale.MajorTickmark.ShapeType = TickmarkShapeType.Circular_Style11_4 scale.MajorTickmark.ShapeOffset = -5 scale.MajorTickmark.AllowTickOverlap = True Dim sMajorScale As FactorF2D sMajorScale.XFactor = 0.6 sMajorScale.YFactor = 0.8 scale.MajorTickmark.ShapeScale = sMajorScale scale.MajorTickmark.TextOffset = -17 scale.MajorTickmark.TextOrientation = LabelOrientation.LeftToRight scale.MinorTickCount = 4 scale.MinorTickmark.ShapeOffset = -2.5 scale.MinorTickmark.ShapeType = TickmarkShapeType.Circular_Style11_3 Dim sMinorScale As FactorF2D sMinorScale.XFactor = 0.6 sMinorScale.YFactor = 1 scale.MinorTickmark.ShapeScale = sMinorScale scale.AppearanceTickmarkText.TextBrush = New SolidBrushObject(Color.Black) Dim sLabel As ScaleLabel = New ScaleLabel sLabel.AllowHTMLString = True sLabel.Position = New PointF2D(125, 215) sLabel.AppearanceText.TextBrush = New SolidBrushObject(Color.White) sLabel.Size = New Size(250, 60) sLabel.Text = "Source: " & dt.Rows(0).Item(8).ToString() & " Measure: " & unit & vbCrLf & "Min Value: " & _ minVal.ToString() & " Max Value " & maxVal.ToString() & vbCrLf & "Value: " scale.Labels.Add(sLabel) Dim needle As ArcScaleNeedleComponent = circularGauge.Needles(0) needle.ShapeType = NeedleShapeType.CircularFull_Style11 Dim background As ArcScaleBackgroundLayer = circularGauge.BackgroundLayers(0) background.ShapeType = BackgroundLayerShapeType.CircularHalf_Style11 background.ArcScale = scale Dim sCenterPos As PointF2D sCenterPos.X = 0.5 sCenterPos.Y = 0.815 background.ScaleCenterPos = sCenterPos Dim sSize As FactorF2D sSize.XFactor = 250 sSize.YFactor = 154 background.Size = sSize ASPxGaugeControl1.BackColor = Color.Transparent ASPxGaugeControl1.AutoLayout = True Else ASPxGaugeControl1.Gauges.Clear() ASPxGaugeControl1.Visible = False End If End Sub#End Region#Region "Supporting Functions" Private Function FormatUit(ByVal unit As String) As String Select Case unit Case "sec" unit = "Seconds" Case "days" unit = "Days" Case "Gb" unit = "GB" Case "hours" unit = "Hours" Case "Kb" unit = "KB" Case "Mb" unit = "MB" Case "percent" unit = "Percent" Case "total" unit = "Total" End Select Return unit End Function Private Function RadBarSeries(ByVal dt As DataTable) As BarSeries Dim chartData As New BarSeries() Dim unit As String = "" Dim cName As String = dt.Rows(0).Item(6).ToString() unit = dt.Rows(0).Item(7).ToString() chartData.Name = cName chartData.LabelsAppearance.Visible = False chartData.TooltipsAppearance.DataFormatString = "{0} " & unit chartData.DataField = "avValue" Return chartData End Function Private Function RadLineSeries(ByVal dt As DataTable) As LineSeries Dim chartData As New LineSeries() Dim unit As String = "" Dim cName As String = dt.Rows(0).Item(6).ToString() unit = dt.Rows(0).Item(7).ToString() chartData.Name = cName chartData.LabelsAppearance.Visible = False chartData.TooltipsAppearance.DataFormatString = "{0} " & unit chartData.DataField = "avValue" Return chartData End Function Private Sub RcbFreq_SelectedIndexChanged(sender As Object, e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles rcbFreq.SelectedIndexChanged If lblType.Text = "Bar" Or lblType.Text = "Line" Then BuildRadChart() Else BuildDevXChart() End If End Sub Private Sub RcbType_SelectedIndexChanged(sender As Object, e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles rcbType.SelectedIndexChanged lblType.Text = rcbType.SelectedValue If lblType.Text = "Bar" Or lblType.Text = "Line" Then BuildRadChart() Else BuildDevXChart() End If End Sub#End RegionEnd Class<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="uChart.ascx.vb" Inherits="USDashboard.uChart" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Charting" TagPrefix="telerik" %><%@ Register Assembly="DevExpress.Web.ASPxGauges.v12.1, Version=12.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges" TagPrefix="dx" %><%@ Register Assembly="DevExpress.Web.ASPxGauges.v12.1, Version=12.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges" TagPrefix="dx" %><%@ Register Assembly="DevExpress.Web.ASPxGauges.v12.1, Version=12.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.Linear" TagPrefix="dx" %><%@ Register Assembly="DevExpress.Web.ASPxGauges.v12.1, Version=12.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.Circular" TagPrefix="dx" %><%@ Register Assembly="DevExpress.Web.ASPxGauges.v12.1, Version=12.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.State" TagPrefix="dx" %><%@ Register Assembly="DevExpress.Web.ASPxGauges.v12.1, Version=12.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.Digital" TagPrefix="dx" %><link href="../CSS/uchart.css" rel="stylesheet" type="text/css" /><asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"></asp:ScriptManagerProxy><telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rcbFreq"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadHtmlChart1" /> <telerik:AjaxUpdatedControl ControlID="ASPxGaugeControl1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="rcbType"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadHtmlChart1" /> <telerik:AjaxUpdatedControl ControlID="ASPxGaugeControl1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManagerProxy><div> <div> <table class="style1"> <tr> <td> <asp:Label ID="Label2" runat="server" ForeColor="White" Text="Frequency" Font-Size="Small"></asp:Label> <telerik:RadComboBox ID="rcbFreq" Runat="server" Skin="Office2010Black" AutoPostBack="True" Width="100px"> <Items> <telerik:RadComboBoxItem runat="server" Text="Daily" Value="Daily" /> <telerik:RadComboBoxItem runat="server" Text="Weekly" Value="Weekly" Selected="True" /> <telerik:RadComboBoxItem runat="server" Text="Monthly" Value="Monthly" /> <telerik:RadComboBoxItem runat="server" Text="Yearly" Value="Yearly" /> </Items> </telerik:RadComboBox> </td> <td> <asp:Label ID="Label1" runat="server" ForeColor="White" Text="Chart Type" Font-Size="Small"></asp:Label> <telerik:RadComboBox ID="rcbType" runat="server" Skin="Office2010Black" AutoPostBack="True" Width="100px"> <Items> <telerik:RadComboBoxItem runat="server" Text="Bar Chart" Value="Bar" /> <telerik:RadComboBoxItem runat="server" Text="Line Chart" Value="Line" /> <telerik:RadComboBoxItem runat="server" Text="Gauge Chart" Value="Gauge" /> </Items> </telerik:RadComboBox> </td> </tr> </table> </div> <telerik:radhtmlchart runat="server" ID="RadHtmlChart1" Height="280px"></telerik:radhtmlchart> <dx:ASPxGaugeControl ID="ASPxGaugeControl1" runat="server" Height="260px" Width="260px" BackColor="White" Value="20" Visible="False"> <gauges> <dx:CircularGauge Bounds="0, 0, 260, 260" Name="cGauge1"> <scales> <dx:ArcScaleComponent AppearanceTickmarkText-Font="Tahoma, 12pt" AppearanceTickmarkText-TextBrush="<BrushObject Type="Solid" Data="Color:Black"/>" Center="125, 165" EndAngle="0" MajorTickCount="7" MajorTickmark-FormatString="{0:F0}" MajorTickmark-ShapeOffset="-5" MajorTickmark-ShapeScale="0.6, 0.8" MajorTickmark-ShapeType="Circular_Style11_4" MajorTickmark-TextOffset="-17" MajorTickmark-TextOrientation="LeftToRight" MaxValue="80" MinorTickCount="4" MinorTickmark-ShapeOffset="-2.5" MinorTickmark-ShapeScale="0.6, 1" MinorTickmark-ShapeType="Circular_Style11_3" MinValue="20" Name="scale1" RadiusX="107" RadiusY="107" StartAngle="-180" Value="20"> </dx:ArcScaleComponent> <dx:ArcScaleComponent AppearanceTickmarkText-Font="Microsoft Sans Serif, 8pt, style=Bold" AppearanceTickmarkText-TextBrush="<BrushObject Type="Solid" Data="Color:Black"/>" Center="125, 165" EndAngle="-30" MajorTickCount="6" MajorTickmark-FormatString="{0:F0}" MajorTickmark-ShapeType="Circular_Style11_2" MajorTickmark-TextOffset="-15" MajorTickmark-TextOrientation="LeftToRight" MaxValue="700" MinorTickCount="4" MinorTickmark-ShapeType="Circular_Style11_1" MinValue="200" Name="scale2" RadiusX="70" RadiusY="70" StartAngle="-180" Value="200" ZOrder="-1"> </dx:ArcScaleComponent> </scales> <backgroundlayers> <dx:ArcScaleBackgroundLayerComponent Name="bg1" ScaleCenterPos="0.5, 0.815" ScaleID="scale1" ShapeType="CircularHalf_Style11" Size="250, 154" ZOrder="1000" /> </backgroundlayers> <needles> <dx:ArcScaleNeedleComponent EndOffset="5" Name="needle1" ScaleID="scale1" ShapeType="CircularFull_Style11" StartOffset="-9.5" ZOrder="-50" /> </needles> </dx:CircularGauge> </gauges> <LayoutPadding All="0" Left="0" Top="0" Right="0" Bottom="0"></LayoutPadding> </dx:ASPxGaugeControl></div><div style="visibility: hidden"> <asp:Label ID="lblMan" runat="server" Text=""></asp:Label> <asp:Label ID="lblType" runat="server" Text=""></asp:Label> <asp:Label ID="lblDesc" runat="server" Text=""></asp:Label> <asp:Label ID="lblServiceKey" runat="server" Text=""></asp:Label> <asp:Label ID="lblMetricKey" runat="server" Text=""></asp:Label></div>