My senario is thus.
- If a user click a context menu item on one of bar chart, I show related information to user.
I have done Adding RadContextMenu on RadChart, but How can I know which data is clicked?
my code is below.
protected void RadChart1_Click(object sender, ChartClickEventArgs e) { string causeCode = e.Series.Name; string date = e.SeriesItem.Label.TextBlock.Text; int cellCnt = 0; DataTable qty = (Session["DATASET"] as DataSet).Tables[1]; foreach (DataRow dr in qty.Rows) { if (dr["Date"].ToString() == date) { cellCnt = Int32.Parse(dr["CellCnt"].ToString()); break; } } sql.SetDBInfo(SqlHelpers.LINE.TIP_DB, SqlHelpers.DBMS_TYPE.SQLSERVER); sql.QueryStr = String.Format( @"SELECT TOP 20 S.Code, COUNT(S.SubPanelID) * 1.0 / {0} * 100 Value FROM ReportDB.tft.DEFECTKPI_RAW_RP S WHERE S.BDate BETWEEN '2013-04-01' AND '2013-04-30' --AND S.Line = 'T' AND LEFT(S.ProcessID, 7) IN (SELECT ProcessID FROM ReportDB.std.MODELINFO WHERE ProdType = 'TV') AND S.CauseCode IN ('FAIL') GROUP BY S.Code ORDER BY COUNT(S.SubPanelID) DESC", cellCnt.ToString()); qty = sql.GetData(); RadChart topDefChart = new RadChart(); topDefChart.ChartTitle.TextBlock.Text = causeCode + " " + date; topDefChart.DataSource = qty; topDefChart.PlotArea.XAxis.DataLabelsColumn = "Code"; topDefChart.DataBind(); this.Page.Controls.Add(topDefChart); SetChartAppearance2(topDefChart); } private void SetChartAppearance2(RadChart _chart) { // Chart Appearence _chart.Skin = "LightBrown"; _chart.AutoLayout = true; _chart.AutoTextWrap = true; _chart.Width = 900; _chart.Height = 400; // Series foreach (ChartSeries series in _chart.Series) { series.DefaultLabelValue = "#Y{F3}"; series.Appearance.ShowLabels = true; int x = 0; foreach (var item in series.Items) { item.ActiveRegion.Attributes = String.Format("id='code{0}'", x.ToString()); ContextMenuElementTarget target = new ContextMenuElementTarget(); target = new ContextMenuElementTarget(); target.ElementID = string.Format("code{0}", x.ToString()); RadContextMenu1.Targets.Add(target); x++; } } RadContextMenu1.Items.Clear(); RadMenuItem menu1 = new RadMenuItem("item1"); RadMenuItem menu2 = new RadMenuItem("item2"); RadContextMenu1.Items.Add(menu1); RadContextMenu1.Items.Add(menu2); // Legend _chart.Legend.Appearance.Position.AlignedPosition = Telerik.Charting.Styles.AlignedPositions.Top; _chart.Legend.Appearance.Overflow = Telerik.Charting.Styles.Overflow.Row; // Axis _chart.PlotArea.YAxis.AxisLabel.TextBlock.Text = "%"; _chart.PlotArea.YAxis.AxisLabel.Visible = true; }