MSChart 饼型 百分比解决方案

效果图:

1)显示百分比

Chart3.Series[ "Series1"].Label = "#PERCENT{P}"
2)解决百分比设定后,legend的显示也为百分比的问题

首先确保你已经在设计器里将Chart设置为饼图形式

在chart3的属性,打开 legends集合,如果还没有legend成员添加一个,添加legend成员后,在其右边 打开        cellColumns集合 ,添加一个Column1,将ColumnType 选为SeriesSymbol,再添加一个Column2,将ColumnType属性选为Text,并将下面的Text属性打开,插入新关键字,选择x值,并删去原有的#LegendText,这样Legend第二列标签在显示时就会显示对应的x轴的值了。
 
例子:

前台代码(红褐色代码就是根据以上第二步得出来的):

  <asp:Chart ID="Chart3" runat="server">
                  <Series>
                      <asp:Series Name="Series1" Legend="Legend1" ChartType="Pie" >
                      </asp:Series>
                  </Series>
                  <ChartAreas>
                      <asp:ChartArea Name="ChartArea1">
                      </asp:ChartArea>
                  </ChartAreas>
                  <Legends>
                    <asp:Legend Name="Legend1" >
                        <CellColumns>
                            <asp:LegendCellColumn ColumnType="SeriesSymbol" Name="Column1">
                                <Margins Left="15" Right="15" />
                            </asp:LegendCellColumn>
                            <asp:LegendCellColumn Name="Column2" Text="#VAL">
                                <Margins Left="15" Right="15" />
                            </asp:LegendCellColumn>
                        </CellColumns>
                      </asp:Legend>
                  </Legends>
                  
              </asp:Chart>


 

后台代码:

 

 protected void Page_Load(object sender, EventArgs e)
        {
            //GridView1.DataSource = CreateDataTable();
            //GridView1.DataBind();

            Chart3.DataSource = CreateDataTable();
            Chart3.Series["Series1"].Label = "#PERCENT{P2}";
            Chart3.Series["Series1"].ChartType = SeriesChartType.Pie;
            Chart3.Series["Series1"].YValueMembers = "项目收入";
            Chart3.Series[0].XValueMember = "Date";
            Chart3.DataBind();

            // Set point labels
            Chart3.Series["Series1"].IsValueShownAsLabel = true;
        }

        private DataTable CreateDataTable()
        {
            //Create a DataTable as the data source of the chart control
            DataTable dt = new DataTable();
            dt.TableName = "MyTable";

            //Add three columns to the DataTable
            dt.Columns.Add("Date");
            dt.Columns.Add("项目收入");
            dt.Columns.Add("其他收入");

            DataRow dr;

            //Add rows to the table which contains some random data for demonstration

            dr = dt.NewRow();
            dr["Date"] = "Jan";
            dr["项目收入"] = 3731;
            dr["其他收入"] = 4101;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Date"] = "Feb";
            dr["项目收入"] = 6024;
            dr["其他收入"] = 4324;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Date"] = "Mar";
            dr["项目收入"] = 4935;
            dr["其他收入"] = 2935;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Date"] = "Apr";
            dr["项目收入"] = 4466;
            dr["其他收入"] = 5644;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Date"] = "May";
            dr["项目收入"] = 5117;
            dr["其他收入"] = 5671;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Date"] = "Jun";
            dr["项目收入"] = 3546;
            dr["其他收入"] = 4646;
            dt.Rows.Add(dr);

            return dt;

        }


 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值