Hi everyone,
I have a problem with formating Y-Axis label, I need to use spanish format for numbers (e.g.: 123.456.789,12)
As you can see in the picture, in the tooltip I can transform the values with javascript function, but i can't use the same metod for Y-Axis Label.
What can I do?
Thanks in advance
6 Answers, 1 is accepted
0
Hi,
We are currently working on allowing RadHtmlChart to use Kendo chart localizations and therefore in order to set a certain culture one should follow the steps that Kendo offers here. Said shortly:
I have created a sample VS project in the archive "RadHtmlChart_ColumnSeries_localization.zip" which also includes the js file related to the ES culture. Note that the declaration of the reference to the culture file along with the culture setting of the kendo object is put on the bottom of the page. This order is a must for the proper localization of the chart. Note also that the DataFormatString is set to "C" for currency, "N" for numeric, etc. If you apply however {0:C} or {0:N} syntax this will format your numbers without the culture format. This is so because of the Kendo implementation of the cultures requires using the Kendo format strings.
This functionality is still under development and this is why it is not included in the official documentation. If you notice issues with it do let us know.
Regards,
Danail Vasilev
the Telerik team
We are currently working on allowing RadHtmlChart to use Kendo chart localizations and therefore in order to set a certain culture one should follow the steps that Kendo offers here. Said shortly:
- Add a reference in your page to the certain culture file (you can find Kendo Culture files in "js/cultures" folder located in the default Kendo folder. You can download KendoUI from here):
<script type="text/javascript" src="kendo.culture.es-ES.min.js"></script>
- Declare the culture you want to use to the Kendo object. Note that both script reference and the below function call should be below the RadHtmlCharts on the page:
<script type="text/javascript"> kendo.culture("es-ES");</script>- Apply the desired numeric format in the DataFormatString property:
<LabelsAppearance DataFormatString="C"></LabelsAppearance>I have created a sample VS project in the archive "RadHtmlChart_ColumnSeries_localization.zip" which also includes the js file related to the ES culture. Note that the declaration of the reference to the culture file along with the culture setting of the kendo object is put on the bottom of the page. This order is a must for the proper localization of the chart. Note also that the DataFormatString is set to "C" for currency, "N" for numeric, etc. If you apply however {0:C} or {0:N} syntax this will format your numbers without the culture format. This is so because of the Kendo implementation of the cultures requires using the Kendo format strings.
This functionality is still under development and this is why it is not included in the official documentation. If you notice issues with it do let us know.
Regards,
Danail Vasilev
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
Phil
Top achievements
Rank 2
answered on 28 Oct 2013, 01:32 PM
Let me get this right.
I am using RadControls for ASP.NET Ajax.
I have placed a RadHtmlChart on my page, which is a control in the RadControls suite.
To get it to format using the correct culture I have to install a different product - Kendo ?
Why?
Surely RadControls should work independently.
Furthermore, I have downloaded Kendo (even though I don;t want it) and added the reference as described, but just get an error "'keno' is undefined at runtime. Your instructions don't seem to cover adding this extra Kendo stuff into a preexisting AJAX application.
I am using RadControls for ASP.NET Ajax.
I have placed a RadHtmlChart on my page, which is a control in the RadControls suite.
To get it to format using the correct culture I have to install a different product - Kendo ?
Why?
Surely RadControls should work independently.
Furthermore, I have downloaded Kendo (even though I don;t want it) and added the reference as described, but just get an error "'keno' is undefined at runtime. Your instructions don't seem to cover adding this extra Kendo stuff into a preexisting AJAX application.
0
Hi Phil,
The reason why the RadHtmlChart control uses additional scripts files from KendoUI framework for localization is that the RadHtmlChart is actually an ASP.NET control wrapper around the Kendo UI Chart. Currently our developers are considering the possibility of embedding these scripts files into the control, so that the chart can be localized independently, however, I cannot bound to any time estimates when this can be done.
Regarding the issue you are experiencing I have tried to reproduce it with the VS example from my previous post but to no avail. Could you please watch the short video attached, and then tell me what I am missing? Could you also confirm which is the version of RadControls and the KendoUI's localization files you are testing with?
Regards,
Danail Vasilev
Telerik
The reason why the RadHtmlChart control uses additional scripts files from KendoUI framework for localization is that the RadHtmlChart is actually an ASP.NET control wrapper around the Kendo UI Chart. Currently our developers are considering the possibility of embedding these scripts files into the control, so that the chart can be localized independently, however, I cannot bound to any time estimates when this can be done.
Regarding the issue you are experiencing I have tried to reproduce it with the VS example from my previous post but to no avail. Could you please watch the short video attached, and then tell me what I am missing? Could you also confirm which is the version of RadControls and the KendoUI's localization files you are testing with?
Regards,
Danail Vasilev
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
0
Phil
Top achievements
Rank 2
answered on 08 Nov 2013, 09:59 AM
Danail
Appreciate the feedback, thanks.
Yes, if the necessary JavaScript can be embedded in the control this will make things cleaner.
I followed the video, the bit I am missing is, well, Kendo. I donwloaded it but have no idea how to add it to my website. Obviously I am getting errors becsue the referenced js file doesn't exist.
I could create a folder manually and insert the js file if I can find it, but this seems a bit hacky,. Welcome to the world of HTML5/Javascript I guess? I was expecting some thing Kendo in my toolbox to drop onto a page but I don't see anything.
Appreciate the feedback, thanks.
Yes, if the necessary JavaScript can be embedded in the control this will make things cleaner.
I followed the video, the bit I am missing is, well, Kendo. I donwloaded it but have no idea how to add it to my website. Obviously I am getting errors becsue the referenced js file doesn't exist.
I could create a folder manually and insert the js file if I can find it, but this seems a bit hacky,. Welcome to the world of HTML5/Javascript I guess? I was expecting some thing Kendo in my toolbox to drop onto a page but I don't see anything.
0
Phil
Top achievements
Rank 2
answered on 08 Nov 2013, 12:09 PM
I added the js file manually, and I now get currency formatted numbers.
The lack of any ability to further format makes this pretty useless anyway. I don't wany to display £1,433,123.01. Who cares about 1p on a chart when you are dealing in millions?
Sorry, this is not even half baked yet.
Instead I am assigning a DataFormatString in code behind. I have a checkbox which toggles if the charts show counts or values, and I assign the DataFormat String accordingly, e.g.
This also implements varying colours by item for the pie charts (users can select a palette from a dropdown), matching tooltip colours to the series/item, and optionally hiding labels. Note the trick of assigning an ClientTemplate of a single space to effectively hide the labels
I'm happy with the way this works and hope it helps someone else.
The lack of any ability to further format makes this pretty useless anyway. I don't wany to display £1,433,123.01. Who cares about 1p on a chart when you are dealing in millions?
Sorry, this is not even half baked yet.
Instead I am assigning a DataFormatString in code behind. I have a checkbox which toggles if the charts show counts or values, and I assign the DataFormat String accordingly, e.g.
Public Sub ShowChart() Trace.Write("ShowChart") Dim plt As Telerik.Charting.Palette plt = Telerik.Charting.PalettesCollection.GetPalette(Master.ddlPalette.SelectedValue) If dt Is Nothing Then Else If Master.ShowGrid Then rg1.DataSource = dt rg1.DataBind() rc1.Visible = False rc2.Visible = False rc3.Visible = False rg1.Visible = True Else rc1.Visible = True rc2.Visible = True rc3.Visible = True rg1.Visible = False rc1.DataSource = dt rc1.DataBind() With rc1.PlotArea.YAxis If Master.chkByValue.Checked Then .MaxValue = 1200000 .Step = 100000 .LabelsAppearance.DataFormatString = "£{0:N0}" Else .MaxValue = 500 .Step = 50 .LabelsAppearance.DataFormatString = "{0:N0}" End If ' reset chart axis upper limit based on actual data values .MaxValue = (((Int(maxvalue)) / .Step) * .Step) + (.Step * 0.2) End With Dim colorindex As Integer = 2 For Each chtseries As ColumnSeries In rc1.PlotArea.Series ' vary colours Try chtseries.Appearance.FillStyle.BackgroundColor = plt.Items(colorindex).MainColor chtseries.TooltipsAppearance.BackgroundColor = plt.Items(colorindex).MainColor Catch chtseries.Appearance.FillStyle.BackgroundColor = plt.Items(0).MainColor chtseries.TooltipsAppearance.BackgroundColor = plt.Items(0).MainColor End Try colorindex += 1 If colorindex = plt.Items.Count Then colorindex = 0 ' optionally show labels chtseries.LabelsAppearance.Position = HtmlChart.BarColumnLabelsPosition.InsideEnd If Master.chkLabels.Checked Then chtseries.LabelsAppearance.ClientTemplate = "" Else chtseries.LabelsAppearance.ClientTemplate = " " End If ' show either count or value If Master.chkByValue.Checked Then chtseries.LabelsAppearance.DataFormatString = "£{0:N0} " & chtseries.Name chtseries.TooltipsAppearance.DataFormatString = "£{0:N0} " & chtseries.Name Else chtseries.LabelsAppearance.DataFormatString = "{0:N0} " & chtseries.Name chtseries.TooltipsAppearance.DataFormatString = "{0:N0} " & chtseries.Name End If Next ' total pie charts For pie As Int16 = 0 To 1 Dim pieslices As PieSeries Dim dtPie As DataView If pie = 0 Then pieslices = rc2.PlotArea.Series(0) dtPie = dt2.AsDataView Else pieslices = rc3.PlotArea.Series(0) dtPie = dt.AsDataView End If pieslices.SeriesItems.Clear() ' optionally show labels If Master.chkLabels.Checked Then pieslices.LabelsAppearance.ClientTemplate = "" pieslices.LabelsAppearance.Position = HtmlChart.PieLabelsPosition.Circle If Master.chkByValue.Checked Then pieslices.LabelsAppearance.DataFormatString = "£{0:N0}" Else pieslices.LabelsAppearance.DataFormatString = "{0:N0}" End If Else pieslices.LabelsAppearance.Position = HtmlChart.PieLabelsPosition.Column pieslices.LabelsAppearance.ClientTemplate = " " ' make it go away End If ' show counts or values If Master.chkByValue.Checked Then pieslices.TooltipsAppearance.DataFormatString = "£{0:N0}" Else pieslices.TooltipsAppearance.DataFormatString = "{0:N0}" End If ' add items back in varying colours colorindex = 2 For Each dr As DataRow In dtPie.Table.Rows Try Dim pieslice As New PieSeriesItem(CInt(dr("Total")), plt.Items(colorindex).MainColor, dr(pieslices.Name)) pieslices.SeriesItems.Add(pieslice) Catch Dim pieslice As New PieSeriesItem(CInt(dr("Total")), plt.Items(0).MainColor, dr(pieslices.Name)) pieslices.SeriesItems.Add(pieslice) End Try colorindex += 1 If colorindex = plt.Items.Count Then colorindex = 0 Next Next End If End If Trace.Write("ShowChart end") End SubThis also implements varying colours by item for the pie charts (users can select a palette from a dropdown), matching tooltip colours to the series/item, and optionally hiding labels. Note the trick of assigning an ClientTemplate of a single space to effectively hide the labels
I'm happy with the way this works and hope it helps someone else.
0
Hi Phil,
I am glad you have successfully localized the RadHtmlChart control. You can format numbers in the chart either through the DataFormatString property or if you want to format number in the ClientTemplate element you can use the kendo.format() method. For example:
ASPX:
C#:
More information on formatting numbers and dates in RadHtmlChart control is available in Formatting Numbers and Formatting Dates help articles.
Regards,
Danail Vasilev
Telerik
I am glad you have successfully localized the RadHtmlChart control. You can format numbers in the chart either through the DataFormatString property or if you want to format number in the ClientTemplate element you can use the kendo.format() method. For example:
ASPX:
<telerik:RadHtmlChart runat="server" ID="RadHtmlChart1" Width="640px" Height="480px"> <PlotArea> <Series> <telerik:ColumnSeries DataFieldY="myYValues"> <LabelsAppearance DataFormatString="{0:C0}"> </LabelsAppearance> <TooltipsAppearance> <ClientTemplate> #=kendo.format(\'{0:C0}\',dataItem.myYValues)# </ClientTemplate> </TooltipsAppearance> </telerik:ColumnSeries> </Series> <XAxis DataLabelsField="myXAxisItems"> </XAxis> <YAxis> <LabelsAppearance DataFormatString="{0:C0}"></LabelsAppearance> </YAxis> </PlotArea></telerik:RadHtmlChart>protected void Page_Load(object sender, EventArgs e){ RadHtmlChart1.DataSource = GetData(); RadHtmlChart1.DataBind();}protected DataTable GetData(){ DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("myYValues"); dt.Columns.Add("myXAxisItems"); dt.Rows.Add(1, 2520.1234, "Item 1"); dt.Rows.Add(2, 5506.6784, "Item 2"); dt.Rows.Add(3, 6541.9542, "Item 3"); dt.Rows.Add(4, 4982.8421, "Item 4"); return dt;}More information on formatting numbers and dates in RadHtmlChart control is available in Formatting Numbers and Formatting Dates help articles.
Regards,
Danail Vasilev
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.