C# HighCharts使用SQL数据库中的数据填充饼图

C# HighCharts使用SQL数据库中的数据填充饼图,c#,highcharts,C#,Highcharts,我是网页设计新手,正在尝试使用C#用SQL数据库中的数据填充highcharts饼图。我已经成功地做了一个条形图,但我有一个饼图的麻烦。基本上,我有一个表tblReport1,其中包含两个字段CustomerType和TotalOrders 我可以让它引入值,但我不能让我的切片重命名为CustomerType字段中的数据。我在这个论坛上尝试了一些建议,但都没能奏效。以下是我的代码,如有任何建议,将不胜感激 private void Report1() { dsSeries = BindD

我是网页设计新手,正在尝试使用C#用SQL数据库中的数据填充highcharts饼图。我已经成功地做了一个条形图,但我有一个饼图的麻烦。基本上,我有一个表tblReport1,其中包含两个字段CustomerType和TotalOrders

我可以让它引入值,但我不能让我的切片重命名为CustomerType字段中的数据。我在这个论坛上尝试了一些建议,但都没能奏效。以下是我的代码,如有任何建议,将不胜感激

private void Report1()
{
    dsSeries = BindData();

    if (dsSeries == null) return;

    foreach (DataRow dr in dsSeries.Tables[0].Rows)
    {
        hidXCategories11.Add(dr["CustomerType"]);
    }

    foreach (DataRow dr1 in dsSeries.Tables[0].Rows)
    {
        hidValues11.Add(Convert.ToInt32(dr1["TotalOrders"]));
        yValues = hidValues11.ToArray(typeof(object)) as object[];
    }


    DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")
    .InitChart(new Chart { PlotShadow = false })
    .SetTitle(new Title { Text = "Orders by Customer Type" })
    .SetTooltip(new Tooltip { Formatter = "function() { return '<b>'+ this.point.name +'</b>: '+ this.y +' Orders'; }" })
    .SetPlotOptions(new PlotOptions
    {
        Pie = new PlotOptionsPie
        {
            ShowInLegend = true,
            AllowPointSelect = true,
            DataLabels = new PlotOptionsPieDataLabels
            {
                Formatter = "function() { return '<b>'+ this.point.name +'</b>: '+ this.y; }"
            }
        }
    })

    .SetSeries(new[]
       {
               new Series { Type = ChartTypes.Pie, Name = "help!", Data = new Data(yValues) }
       });



    ltrChart.Text = chart.ToHtmlString();

}
private void Report1()
{
dsSeries=BindData();
if(dsSeries==null)返回;
foreach(dsSeries.Tables[0].行中的数据行dr)
{
hidXCategories11.Add(dr[“CustomerType”]);
}
foreach(dsSeries.Tables[0].行中的数据行dr1)
{
hidValues11.Add(转换为32(dr1[“TotalOrders”));
yValues=hidValues11.ToArray(typeof(object))作为object[];
}
DotNet.Highcharts.Highcharts chart=新的DotNet.Highcharts.Highcharts(“图表”)
.InitChart(新图表{PlotShadow=false})
.SetTitle(新标题{Text=“按客户类型排序的订单”})
.SetTooltip(新工具提示{Formatter=“function(){return'+this.point.name+':'+this.y+'Orders';}})
.SetPlotOptions(新的绘图选项
{
Pie=新绘图选项Pie
{
ShowInLegend=true,
AllowPointSelect=true,
DataLabels=新绘图选项PieDataLabels
{
Formatter=“function(){return'+this.point.name+':'+this.y;}”
}
}
})
.SetSeries(新[]
{
新系列{Type=ChartTypes.Pie,Name=“help!”,Data=newdata(yvalue)}
});
ltrChart.Text=chart.ToHtmlString();
}
查看饼图数据的格式分为两部分,标签和数据项

在您的中,序列数据似乎只是一个整数数组

因此,我认为您需要更改
系列
对象以接受不同格式的数据

遗憾的是,Highcharts.Net文档中的示例有点缺乏,而且似乎没有这样的示例,因此您可能需要看看intellisense提供了什么

但底线是,您的饼图楔子需要在数据系列中命名,而不是作为类别或任何其他名称

编辑一些示例代码

我在查看他们的网站,他们在那里有一个帮助论坛,其中包含以下示例代码

       series.Add(new Serie
        {
            data = new object[] { 
                new object[] { "Firefox", 45 }, 
                new object[] { "IE", 24.8 }, 
                new object[] { "Chrome", 12.8 },
                new object[] { "Safari", 8.5 }, 
                new object[] { "Opera", 5.2 }, 
                new object[] { "Outros", 3.7 } 
            }
        });
资料来源:


我无法测试这一点,但从文章的上下文来看,它应该可以完成这项工作。

您能展示发送给客户端的javscript是什么样子的吗?这是.NET代码(我甚至不知道是否有.NET接口),但“真正的”highcharts代码都在客户端运行。乍一看,您似乎设置了正确的选项,但更容易检查我们是否可以在javascript中看到真正的选项。嗨,Chris,我没有javascript,我的aspx文档中只有一个部分,我链接到highchart.jsfile@bsmith,你能看看你的“活”吗页面中文本标记应该位于的位置,然后告诉我们那个javascript是什么?.NET highcharts API创建一个写入的文本标记(实际上它只是创建一个javascript字符串并将其放入文本标记中-或多或少)。$(document.ready(function(){chart=new highcharts.chart({chart:{renderTo:'chart\u container',plotShadow:false},plotOptions:{pie:{allowPointSelect:true,dataLabels:{formatter:function(){return'+this.point.name+':'+this.y;}}}}}},标题:{text:'Orders by Customer Type'},工具提示:{formatter:function(){return'+this.point.name+':'+this.y;}},系列:[{data:[50,20,5],name:'help!!,Type:'pie'});});对于数据值,我使用数据类型对象来存储值。您知道我需要为切片名称使用什么吗。我尝试了数组列表和字符串,但两者都没有work@bsmith:你能发布一些工作代码吗..因为你接受了这个答案