【问题标题】:Changing the chart type in ASP.net when in a DropDownList SelectedIndex Changed event在 DropDownList SelectedIndex Changed 事件中更改 ASP.net 中的图表类型
【发布时间】:2013-02-02 16:07:48
【问题描述】:

我有一个 DropDownList 和一个在 ASP.net 中创建的图表。它的现有项目是条形图和饼图。

我需要将我的图表选择为在 DropDownList 中选择的格式。 有没有办法做到这一点?提前谢谢你....!

我的编码如下。

<asp:DropDownList ID="drpChart" runat="server" AutoPostBack="True" Height="24px" Width="142px">
                            <asp:ListItem>Bar Chart</asp:ListItem>
                            <asp:ListItem>Pie Chart</asp:ListItem>
                            </asp:DropDownList>

<asp:Chart ID="Chart2" runat="server" style="margin-left: 40px">
                    <Series>
                        <asp:Series Name="Series1">
                        </asp:Series>
                    </Series>
                    <ChartAreas>
                        <asp:ChartArea Name="ChartArea1">
                        </asp:ChartArea>
                    </ChartAreas>
                </asp:Chart>

【问题讨论】:

    标签: asp.net drop-down-menu charts selectedindexchanged


    【解决方案1】:

    DropDownList 事件中使用你的代码我使用相同的功能

    这是我的代码:

    protected void Dd_Graph_Selection_SelectedIndexChanged(object sender, EventArgs e)
        {
            string chartType = Dd_Graph_Selection.SelectedValue;
            switch (chartType)
            {
                case "Column Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Column;
                    break;
                case "Pie Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;
                    break;
                case "Bar Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Bar;
                    break;
                case "BoxPlot Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.BoxPlot;
                    break;
                case "Funnel Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Funnel;
                    break;
                case "Point Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Point;
                    break;
                case "Spilinr Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Spline;
                    break;
                case "Bubble Chart":
                    Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Bubble;
                    break;
            }
        }
    

    【讨论】:

      【解决方案2】:

      一个简单的 switch 语句就可以解决问题:

      ASPX:

      <asp:DropDownList ID="drpChart" runat="server" AutoPostBack="True" Height="24px"
          Width="142px">
          <asp:ListItem>Bar Chart</asp:ListItem>
          <asp:ListItem>Pie Chart</asp:ListItem>
      </asp:DropDownList><br />
      <asp:Chart ID="Chart1" runat="server">
          <Series>
              <asp:Series Name="Series1">
              </asp:Series>
          </Series>
          <ChartAreas>
              <asp:ChartArea Name="ChartArea1">
              </asp:ChartArea>
          </ChartAreas>
      </asp:Chart>
      

      背后的代码:

      protected void Page_Load(object sender, EventArgs e)
      {
          var employees = new Dictionary<int, string>
              {
                  {10, "Product A"},{20, "Product B"},{30, "Product C"}
              };
      
          foreach (KeyValuePair<int, string> employee in employees)
          {
              Chart1.Series[0].Points.AddXY(employee.Value, employee.Key);
          }
      
          string chartType = drpChart.SelectedValue;
          switch(chartType)
          {
              case "Bar Chart":
                  Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Bar;
                  break;
              case "Pie Chart":
                  Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;
                  break;
          }
      }
      

      【讨论】:

      • 这不起作用....我不知道是什么错误...它没有错误,但也不起作用
      • 更改图表类型的代码应该在页面加载事件中,在 if(!Page.Is.PostBack) 之外单步执行您的代码,看看出了什么问题。如果你想不通它出来告诉我你的页面背后的代码,我会帮助你
      猜你喜欢
      • 2017-11-21
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多