My app has a TreeView with tristate checkboxes. The state is stored in a database. I'm wondering about the best way to save and restore state for parent nodes that are Indeterminate.
If I simply save the collection of nodes I get from the treeview.Checked method and restore the same nodes (as checked), the TreeView doesn't end up looking like the original state. Parent nodes that are indeterminate are restored as Checked and all their children are restored as checked.
Do I need to go through the Checked nodes and remove the ones that are indeterminate for storage? This seems to work differently in the current version of the TreeView than it did in a version from a few years back.
--Mark

Hello,
IndexOutOfRangeException error has occurred when PieSeriesItem is over thirteen.
It works normally up to twelve PieSeriesItem.
Is there a limit of twelve PieSeriesItem to use?
Hi
I am working on the project where customer wants editor which can track changes. I would like to integrate RadEditor in Dynamics CRM 2016 with tracking change. can you please guide me through how can I use radEditor in CRM forms.
Thanks

Hi,
After upgrading from 2013:3:1114:35 to 2017.1.228.35.
When a grid returns no data (by filtering a column for example) the word "caption" appears.
This stays even after the filtering has been removed and data gets displayed.
The code has the following set
MasterTableView.NoMasterRecordsText = string.Empty;
The grid data is loaded client-side
I'm using a RadGrid with a GridTemplateColumn. In my EditItemTemplate I place a RadDropDownList and I set the OnClientDropDownClosed event to a JS function. Everything has been working fine for quite a while. Then after updating our project to 2017.1.228.45 the OnClientDropDownClosed event is now firing twice.
This is a problem for the application because inside our OnClientDropDownClosed JS function we have a Confirm pop up. When the event is fired twice Two pop up's get displayed on the UI.
Any suggestions on how to correct this behavior?

I'm trying to automatically resize the rad window containing a rad editor when the rad editor changes size when AutoResizeHeight is true.
I've tried following the directions in: http://www.telerik.com/forums/what-event-is-fired-on-resize but it doesn't appear that onResizeEnd is called when auto resizing. Can I get some direction about what event to trap on so I can resize my Rad Window manually? Or perhaps that is some other way to get the rad window with .AutoSize = true to automatically resize when rad editors in the window change size.
Thanks!
Hello,
I'm using try version and I found two problem and would like your help.
1. My line disappears when I have more four sub items (see example)
2.This example is more difficult to explain because but I try.
I have structure (see image OrgChart4.PNG) and I need that my orgChart stay as OrgChart1.PNG, group by Header (like "Operacional") but some other "Operacional" groups name are in blank.
What is happening?
Regars,
Renato Vilela
List<Structure> lsStructure;CreateOrg(lsStructure);private void CreateOrg(List<Structure> lsStructure){DataTable nodeTable = CreateNode(lsStructure); DataTable itemsTable = CreateItems(lsStructure); rocKAS.GroupEnabledBinding.NodeBindingSettings.DataFieldID = Support.GetMemberName((Structure c) => c.EnteID).ToString(); rocKAS.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID = Support.GetMemberName((Structure c) => c.EnteParentID).ToString(); rocKAS.GroupEnabledBinding.NodeBindingSettings.DataSource = nodeTable; //Nome das Pessoas rocKAS.GroupEnabledBinding.GroupItemBindingSettings.DataFieldNodeID = Support.GetMemberName((Structure c) => c.EnteID).ToString(); rocKAS.GroupEnabledBinding.GroupItemBindingSettings.DataFieldID = Support.GetMemberName((Structure c) => c.DivisionID).ToString(); rocKAS.RenderedFields.NodeFields.Add(new Telerik.Web.UI.OrgChartRenderedField() { DataField = "Division" }); rocKAS.GroupEnabledBinding.GroupItemBindingSettings.DataSource = itemsTable; rocKAS.DataBind(); rocKAS.CollapseAllNodes();}private DataTable CreateNode(List<Structure> lsStructure) { DataTable nodeTable = new DataTable(); DataRow row; nodeTable.Columns.Add(Support.GetMemberName((Structure c) => c.EnteID).ToString(), typeof(int)); nodeTable.Columns.Add(Support.GetMemberName((Structure c) => c.EnteParentID).ToString(), typeof(int)); nodeTable.Columns.Add(Support.GetMemberName((Structure c) => c.DivisionID).ToString(), typeof(int)); nodeTable.Columns.Add(Support.GetMemberName((Structure c) => c.Division).ToString(), typeof(string)); foreach (var item in lsStructure) { row = nodeTable.NewRow(); row[Support.GetMemberName((Structure c) => c.EnteID).ToString()] = item.EnteID; row[Support.GetMemberName((Structure c) => c.DivisionID).ToString()] = item.DivisionID; row[Support.GetMemberName((Structure c) => c.Division).ToString()] = item.Division; if(item.EnteParentID == 0) row[Support.GetMemberName((Structure c) => c.EnteParentID).ToString()] = DBNull.Value; else row[Support.GetMemberName((Structure c) => c.EnteParentID).ToString()] = item.EnteParentID; nodeTable.Rows.Add(row); } return nodeTable; } private DataTable CreateItems(List<Structure> lsStructure) { DataTable itemsTable = new DataTable(); DataRow row; itemsTable.Columns.Add(Support.GetMemberName((Structure c) => c.EnteID).ToString(), typeof(int)); itemsTable.Columns.Add(Support.GetMemberName((Structure c) => c.EnteParentID).ToString(), typeof(int)); itemsTable.Columns.Add(Support.GetMemberName((Structure c) => c.EntePosition).ToString(), typeof(string)); itemsTable.Columns.Add(Support.GetMemberName((Structure c) => c.Division).ToString(), typeof(string)); itemsTable.Columns.Add(Support.GetMemberName((Structure c) => c.DivisionID).ToString(), typeof(Int16)); itemsTable.Columns.Add(Support.GetMemberName((Structure c) => c.EnteName).ToString(), typeof(string)); foreach (var item in lsStructure) { row = itemsTable.NewRow(); row[Support.GetMemberName((Structure c) => c.EnteID).ToString()] = item.EnteID; row[Support.GetMemberName((Structure c) => c.EnteParentID).ToString()] = item.EnteParentID; row[Support.GetMemberName((Structure c) => c.EntePosition).ToString()] = item.EntePosition; row[Support.GetMemberName((Structure c) => c.Division).ToString()] = item.Division; row[Support.GetMemberName((Structure c) => c.DivisionID).ToString()] = item.DivisionID; row[Support.GetMemberName((Structure c) => c.EnteName).ToString()] = item.EnteName; itemsTable.Rows.Add(row); } return itemsTable; }
I have an excel export on my grid in which i export some balances.
Some of the balances are returned in big negative numbers from the database. I need to round them up so they don't show up as big negative numbers in excel.
They show fine in the grid. My column declarations are like:
<telerik:GridBoundColumn Aggregate="Sum" DataField="TransferDollars" HeaderText="Transfers" DataFormatString="{0:c2}" UniqueName="Transfers" SortExpression="TransferDollars" AllowFiltering="false" HeaderStyle-Width="9%" FooterStyle-HorizontalAlign="Right"> </telerik:GridBoundColumn>
I change them to a currency format in my InfrastructureReporting event, how can i round them up before export.
protected virtual void grid_InfrastructureExporting(object sender, GridInfrastructureExportingEventArgs e) { foreach (xls.Row row in e.ExportStructure.Tables[0].Rows) { row.Cells[2, row.Index].Format = "$#,##0.00;($#,##0.00)"; row.Cells[3, row.Index].Format = "$#,##0.00;($#,##0.00)"; row.Cells[4, row.Index].Format = "$#,##0.00;($#,##0.00)"; row.Cells[5, row.Index].Format = "$#,##0.00;($#,##0.00)"; row.Cells[6, row.Index].Format = "$#,##0.00;($#,##0.00)"; row.Cells[7, row.Index].Format = "$#,##0.00;($#,##0.00)"; row.Cells[8, row.Index].Format = "$#,##0.00;($#,##0.00)"; row.Cells[9, row.Index].Format = "$#,##0.00;($#,##0.00)"; } }How can I do this?
Hi Team,
I am implementing one application and in that i am using kendo map.
I have plotted bubbles on map. And i have added wraparound : true property.
My issue is when i am scrolling map to left or right side ,adjacent part of map is loading because i have used wraparound: true. But i can not see bubbles applied on same region. For example i have applied bubbles on few cities of US country. But when i am scrolling map to left or right side, new map get loaded, but i can not see any bubble on same cities of US.
How can i make visible those bubbles for everytime.
Thanks & Regards,
Amit

Hi all,
I´ve made a PivotGrid with Chart integration like the example on the demo page.
My output is a little bit different as the demo. See attached file. As you can see in the picture the chart was generated twice.
Do you know why?
Here is my code aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/BdVNet.Master" AutoEventWireup="true" CodeBehind="Telefondaten.aspx.cs" Inherits="BdVNet.Content.Reporting.Telefondaten" %><asp:Content ID="ReportTelefonContent" ContentPlaceHolderID="BdVMasterContentPlaceHolder" runat="server"> <telerik:RadAjaxManagerProxy ID="ReportTelefonAjaxManagerProxy" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="ReportTelefonPivotGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="ReportTelefonPivotGrid" /> <telerik:AjaxUpdatedControl ControlID="A1HtmlChart" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="ReportTelefonZeitenPivotGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="ReportTelefonZeitenPivotGrid" /> <telerik:AjaxUpdatedControl ControlID="A2HtmlChart" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManagerProxy> <div class="box"> <telerik:RadTabStrip ID="ReportTelefonTabStrip" runat="server" MultiPageID="ReportTelefonMultiPage" SelectedIndex="0" Enabled="true" RenderMode="<%$ Resources:Einstellungen, RenderMode %>"> <Tabs> <telerik:RadTab runat="server" Text="Auswertung 1" Selected="true" /> <telerik:RadTab runat="server" Text="Auswertung 2" /> </Tabs> </telerik:RadTabStrip> <telerik:RadMultiPage ID="ReportTelefonMultiPage" runat="server" SelectedIndex="0" Enabled="true" RenderMode="<%$ Resources:Einstellungen, RenderMode %>"> <telerik:RadPageView ID="ReportTelefonA1PageView" runat="server"> <telerik:RadPivotGrid ID="ReportTelefonPivotGrid" runat="server" OnNeedDataSource="ReportTelefonPivotGrid_NeedDataSource" ShowDataHeaderZone="false" ShowFilterHeaderZone="false" TotalsSettings-ColumnGrandTotalsPosition="None" Culture="de-DE" RenderMode="<%$ Resources:Einstellungen, RenderMode %>" ColumnGroupsDefaultExpanded="false" OnCellDataBound="ReportTelefonPivotGrid_CellDataBound" EnableConfigurationPanel="false"> <Fields> <telerik:PivotGridRowField DataField="MitarbeiterDIMENSION_LONG" Caption="Abteilung" CellStyle-Width="150" ZoneIndex="0" /> <telerik:PivotGridRowField DataField="Name" Caption="Mitarbeiter" CellStyle-Width="150" /> <telerik:PivotGridColumnField DataField="Jahr" Caption="Jahr" /> <telerik:PivotGridColumnField DataField="Monat" Caption="Monat" /> <telerik:PivotGridColumnField DataField="Art" Caption="Art" /> <telerik:PivotGridAggregateField DataField="Dauer" DataFormatString="{0:N0}" Aggregate="Count"> <HeaderCellTemplate> Anzahl </HeaderCellTemplate> </telerik:PivotGridAggregateField> <telerik:PivotGridAggregateField DataField="DauerSek" DataFormatString="{0:N0}"> <HeaderCellTemplate> Dauer </HeaderCellTemplate> <CellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </CellTemplate> <RowTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </RowTotalCellTemplate> <RowGrandTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </RowGrandTotalCellTemplate> <ColumnTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </ColumnTotalCellTemplate> <ColumnGrandTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </ColumnGrandTotalCellTemplate> </telerik:PivotGridAggregateField> </Fields> <ConfigurationPanelSettings Position="Left" DefaultDeferedLayoutUpdate="true" /> </telerik:RadPivotGrid> <telerik:RadHtmlChart ID="A1HtmlChart" runat="server" RenderMode="<%$ Resources:Einstellungen, RenderMode %>" Legend-Appearance-Position="Top" PlotArea-YAxis-LabelsAppearance-DataFormatString="N0" PlotArea-XAxis-LabelsAppearance-RotationAngle="45"> <Appearance> <FillStyle BackgroundColor="Transparent" /> </Appearance> <ChartTitle Text="Telefondaten"> <Appearance Align="Center" BackgroundColor="Transparent" Position="Top" /> </ChartTitle> </telerik:RadHtmlChart> </telerik:RadPageView> <telerik:RadPageView ID="ReportTelefonA2PageView" runat="server"> <telerik:RadPivotGrid ID="ReportTelefonZeitenPivotGrid" runat="server" OnNeedDataSource="ReportTelefonZeitenPivotGrid_NeedDataSource" ShowDataHeaderZone="false" ShowFilterHeaderZone="false" TotalsSettings-ColumnGrandTotalsPosition="None" Culture="de-DE" RenderMode="<%$ Resources:Einstellungen, RenderMode %>" ColumnGroupsDefaultExpanded="false" OnCellDataBound="ReportTelefonZeitenPivotGrid_CellDataBound" EnableConfigurationPanel="false"> <Fields> <telerik:PivotGridRowField DataField="Wochentag" Caption="Wochentag" CellStyle-Width="100" /> <telerik:PivotGridRowField DataField="Stunde" Caption="Stunde" CellStyle-Width="100" ZoneIndex="0" /> <telerik:PivotGridRowField DataField="BN_Telefon_Nebenstelle_1" Caption="Nebenstelle" CellStyle-Width="150" ZoneIndex="0" /> <telerik:PivotGridColumnField DataField="Jahr" Caption="Jahr" /> <telerik:PivotGridColumnField DataField="Monat" Caption="Monat" /> <telerik:PivotGridColumnField DataField="Art" Caption="Art" /> <telerik:PivotGridAggregateField DataField="Dauer" DataFormatString="{0:N0}" Aggregate="Count"> <HeaderCellTemplate> Anzahl </HeaderCellTemplate> </telerik:PivotGridAggregateField> <telerik:PivotGridAggregateField DataField="DauerSek" DataFormatString="{0:N0}"> <HeaderCellTemplate> Dauer </HeaderCellTemplate> <CellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </CellTemplate> <RowTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </RowTotalCellTemplate> <RowGrandTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </RowGrandTotalCellTemplate> <ColumnTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </ColumnTotalCellTemplate> <ColumnGrandTotalCellTemplate> <%# (Convert.ToInt64(Container.DataItem) == 0) ? "" : string.Format("{0:d2}:{1:d2}:{2:d2}", (Convert.ToInt64(Container.DataItem)/3600) , (Convert.ToInt64(Container.DataItem)%3600)/60 , (Convert.ToInt64(Container.DataItem)%3600)%60) %> </ColumnGrandTotalCellTemplate> </telerik:PivotGridAggregateField> </Fields> <ConfigurationPanelSettings Position="Left" DefaultDeferedLayoutUpdate="true" /> </telerik:RadPivotGrid> <telerik:RadHtmlChart ID="A2HtmlChart" runat="server" RenderMode="<%$ Resources:Einstellungen, RenderMode %>" Legend-Appearance-Position="Top" PlotArea-YAxis-LabelsAppearance-DataFormatString="N0" PlotArea-XAxis-LabelsAppearance-RotationAngle="45"> <Appearance> <FillStyle BackgroundColor="Transparent" /> </Appearance> <ChartTitle Text="Telefondaten"> <Appearance Align="Center" BackgroundColor="Transparent" Position="Top" /> </ChartTitle> </telerik:RadHtmlChart> </telerik:RadPageView> </telerik:RadMultiPage> </div></asp:Content>
and c#
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Text;namespace BdVNet.Content.Reporting{ public partial class Telefondaten : System.Web.UI.Page { protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); ReportTelefonPivotGrid.ColumnGroupsDefaultExpanded = false; ReportTelefonPivotGrid.RowGroupsDefaultExpanded = false; ReportTelefonPivotGrid.Rebind(); base.OnPreRender(e); ReportTelefonZeitenPivotGrid.ColumnGroupsDefaultExpanded = false; ReportTelefonZeitenPivotGrid.RowGroupsDefaultExpanded = false; ReportTelefonZeitenPivotGrid.Rebind(); } protected void Page_Load(object sender, EventArgs e) { string currentYear = DateTime.Now.Year.ToString(); string currentMonth = String.Format(format: "{0:MM}", arg0: DateTime.Now); if (Code.AccessControl.UserAdminAccessIsValid == true || Code.AccessControl.UserMgmAccessIsValid == true) { var menuSelect = (RadMenu)Master.FindControl(id: "BdVMasterMenu"); menuSelect.Items[2].Items[1].Selected = true; } else { Response.Redirect(url: "../Geschaeft.aspx"); } Label masterPageTextLabel; masterPageTextLabel = (Label)Master.FindControl("BdVMasterTextLabel"); masterPageTextLabel.Text = "Reporting | Telefonanlage"; if (!IsPostBack) { ReportTelefonPivotGrid.CollapsedColumnIndexes.Add(new object[] { currentYear }); ReportTelefonZeitenPivotGrid.CollapsedColumnIndexes.Add(new object[] { currentYear }); //ReportTelefonPivotGrid.CollapsedColumnIndexes.Add(new object[] { currentMonth }); } } protected void ReportTelefonPivotGrid_NeedDataSource(object sender, Telerik.Web.UI.PivotGridNeedDataSourceEventArgs e) { string sqlSelectCommand = "SELECT * FROM [BN_R_Telefonanlage] WHERE Name != ''"; var adapter = new SqlDataAdapter(sqlSelectCommand, ConfigurationManager.ConnectionStrings["BdVNet"].ConnectionString); DataTable myDataTable = new DataTable(); adapter.Fill(myDataTable); ReportTelefonPivotGrid.DataSource = myDataTable; } HashSet<string> columnNames = new HashSet<string>(); Dictionary<string, ColumnSeries> columnSeriesByRowName = new Dictionary<string, ColumnSeries>(); protected void ReportTelefonPivotGrid_CellDataBound(object sender, PivotGridCellDataBoundEventArgs e) { PivotGridDataCell dataCell = e.Cell as PivotGridDataCell; if (columnNames.Count == 0) { this.A1HtmlChart.PlotArea.XAxis.Items.Clear(); this.A1HtmlChart.PlotArea.Series.Clear(); } if (dataCell != null && dataCell.CellType == PivotGridDataCellType.DataCell) { string rowName = GetName(dataCell.ParentRowIndexes); string columnName = GetName(dataCell.ParentColumnIndexes); columnName = columnName.Replace('\'', ' '); if (columnNames.Add(columnName)) { AxisItem axisItem = new AxisItem(columnName); this.A1HtmlChart.PlotArea.XAxis.Items.Add(axisItem); } ColumnSeries columnSeries = null; if (columnSeriesByRowName.ContainsKey(rowName)) { columnSeries = columnSeriesByRowName[rowName]; columnSeries.LabelsAppearance.DataFormatString = "N2"; //columnSeries.LabelsAppearance.ClientTemplate = "test #=value#"; } else { columnSeries = new ColumnSeries(); columnSeriesByRowName.Add(rowName, columnSeries); columnSeries.Name = rowName; columnSeries.LabelsAppearance.DataFormatString = "N0"; this.A1HtmlChart.PlotArea.Series.Add(columnSeries); } CategorySeriesItem item = new CategorySeriesItem(); decimal value = 0; if (e.Cell.DataItem != null && decimal.TryParse(e.Cell.DataItem.ToString(), out value)) { if (value != 0) { if (columnName.Contains("Dauer")) { item.Y = value / 3600; } else { item.Y = value; } } } else { item.Y = null; } columnSeries.SeriesItems.Add(item); } } private string GetName(object[] indexes) { StringBuilder builder = new StringBuilder(); foreach (object index in indexes) { builder.Append(index.ToString()); builder.Append(" | "); } builder.Remove(builder.Length -3, 3); builder.Replace("Count of Dauer", "Anzahl"); builder.Replace("Sum of DauerSek", "Dauer"); return builder.ToString(); } protected void ReportTelefonZeitenPivotGrid_NeedDataSource(object sender, PivotGridNeedDataSourceEventArgs e) { string sqlSelectCommand = "SELECT * FROM [BN_R_Telefonanlage] WHERE Name IS NULL"; var adapter = new SqlDataAdapter(sqlSelectCommand, ConfigurationManager.ConnectionStrings["BdVNet"].ConnectionString); DataTable myDataTable = new DataTable(); adapter.Fill(myDataTable); ReportTelefonZeitenPivotGrid.DataSource = myDataTable; } protected void ReportTelefonZeitenPivotGrid_CellDataBound(object sender, PivotGridCellDataBoundEventArgs e) { PivotGridDataCell dataCell = e.Cell as PivotGridDataCell; if (columnNames.Count == 0) { this.A2HtmlChart.PlotArea.XAxis.Items.Clear(); this.A2HtmlChart.PlotArea.Series.Clear(); } if (dataCell != null && dataCell.CellType == PivotGridDataCellType.DataCell) { string rowName = GetName(dataCell.ParentRowIndexes); string columnName = GetName(dataCell.ParentColumnIndexes); columnName = columnName.Replace('\'', ' '); if (columnNames.Add(columnName)) { AxisItem axisItem = new AxisItem(columnName); this.A2HtmlChart.PlotArea.XAxis.Items.Add(axisItem); } ColumnSeries columnSeries = null; if (columnSeriesByRowName.ContainsKey(rowName)) { columnSeries = columnSeriesByRowName[rowName]; columnSeries.LabelsAppearance.DataFormatString = "N2"; //columnSeries.LabelsAppearance.ClientTemplate = "test #=value#"; } else { columnSeries = new ColumnSeries(); columnSeriesByRowName.Add(rowName, columnSeries); columnSeries.Name = rowName; columnSeries.LabelsAppearance.DataFormatString = "N0"; this.A2HtmlChart.PlotArea.Series.Add(columnSeries); } CategorySeriesItem item = new CategorySeriesItem(); decimal value = 0; if (e.Cell.DataItem != null && decimal.TryParse(e.Cell.DataItem.ToString(), out value)) { if (value != 0) { if (columnName.Contains("Dauer")) { item.Y = value / 3600; } else { item.Y = value; } } } else { item.Y = null; } columnSeries.SeriesItems.Add(item); } } }}
Many thanks in advance
Andreas
