C# dotnet highchart错误,未显示数据
我只是想知道如何基于数据库获取特定的数据列C# dotnet highchart错误,未显示数据,c#,asp.net,highcharts,dotnethighcharts,C#,Asp.net,Highcharts,Dotnethighcharts,我只是想知道如何基于数据库获取特定的数据列 string[] arrLabel = new string[dt.Rows.Count]; Object[] data = new Object[dt.Rows.Count]; Object[] dataDetail = new Object[dt.Rows.Count]; String[] detail = new String[dt.Rows.Count]; var returnO
string[] arrLabel = new string[dt.Rows.Count];
Object[] data = new Object[dt.Rows.Count];
Object[] dataDetail = new Object[dt.Rows.Count];
String[] detail = new String[dt.Rows.Count];
var returnObject = new List<object>();
var returnColumnList = new List<object>();
int i = 0;
foreach (DataRow item in dt.Rows)
{
for (int j = 0; j < 1; j++)
{
returnColumnList.Add(new object[] {item["ATT_WF_STATUS_2"], item["ATT_WF_STATUS_3"]});
}
dataDetail = returnColumnList.ToArray();
returnObject.Add(new object[] { item["DEPARTEMENT"],dataDetail[i]});
arrLabel[i] = ((string)item["DEPARTEMENT"]);
i++;
}
data = returnObject.ToArray();
this.data = data;
this.arrLabel = arrLabel;
更新2:
可以这样形成数据结果吗:
List<object[]> returnColumnList = new List<object[]>();
string json = string.Empty;
var returnObject = new List<object>();
returnColumnList.Add(new object[] { "Depart" , "123", "345" });
returnColumnList.Add(new object[] { "Depart", "123", "345" });
foreach (var item in returnColumnList)
{
returnObject.Add(new {name = item.GetValue(0), data = (new object[] {item.GetValue(1) , item.GetValue(2)})});
}
json = new JavaScriptSerializer().Serialize(returnObject);
已附上结果的图像。
请注意,您选择了字符作为列,也可以根据您希望显示数据的方式选择列范围图。感谢您的简要解释,问题是我从sql server获取此信息,该表来自用户过程,我在GetValue one上遇到错误,因为它不包含定义,并且上面有一个闪烁的红色,我将更新完整编码的条件。已添加带有图像的代码。请看。我们所需要做的就是正确地构建数据框架,以便highchart可以轻松地读取它
protected DataTable GetDataDetail()
{
SortedList sl = new SortedList();
DateTime dateFrom = DateTime.ParseExact(Request.Form[txtOldDate.UniqueID], "yyyy-MM-dd", null);
DateTime dateTo = DateTime.ParseExact(Request.Form[txtNewDate.UniqueID], "yyyy-MM-dd", null);
sl.Add("@DATE_FROM-date", dateFrom);
sl.Add("@DATE_TO-date", dateTo);
DataTable dt = new DataTable();
dateFromChart = dateFrom.ToString("dd MMMM yyyy", CultureInfo.InvariantCulture);
dateToChart = dateTo.ToString("dd MMMM yyyy", CultureInfo.InvariantCulture);
dt = bll.GetAttendanceAnalyticsBasedWfStatus(sl);
string[] arrLabel = new string[dt.Rows.Count];
Object[] data = new Object[dt.Rows.Count];
Object[] dataDetail = new Object[dt.Rows.Count];
var returnObject = new List<object>();
List<object[]> returnColumnList = new List<object[]>();
int i = 0;
foreach (DataRow item in dt.Rows)
{
for (int j = 0; j < 1; j++)
{
returnColumnList.Add(new object[] { item["DEPARTEMENT"], item["ATT_WF_STATUS_2"], item["ATT_WF_STATUS_3"] });
}
dataDetail = returnColumnList.ToArray();
returnObject.Add(new object[] { returnColumnList.Select(b => new { name = b.GetValue(0), data = returnColumnList.Select(y => y.GetValue(1) + "," + y.GetValue(2)).ToArray() }).ToArray() });
arrLabel[i] = ((string)item["DEPARTEMENT"]);
i++;
}
jsonSeries = new JavaScriptSerializer().Serialize(returnObject);
Response.Write(jsonSeries);
data = returnObject.ToArray();
this.data = data;
this.arrLabel = arrLabel;
return dt;
}
protected void ColumnChartDetail()
{
GetDataDetail();
//Binding data to Chart
DotNet.Highcharts.Highcharts chartColumnDetail = new DotNet.Highcharts.Highcharts("chartColumnDetail").InitChart(new Chart
{
DefaultSeriesType = ChartTypes.Column
})
.SetOptions(new GlobalOptions
{
Colors = new[] {
ColorTranslator.FromHtml("#50B432"), //using system.drawing
ColorTranslator.FromHtml("#ED561B"),
ColorTranslator.FromHtml("#DDDF00"),
ColorTranslator.FromHtml("#24CBE5"),
ColorTranslator.FromHtml("#64E572"),
ColorTranslator.FromHtml("#FF9655"),
ColorTranslator.FromHtml("#34495E"),
ColorTranslator.FromHtml("#6AF9C4")
}
})
//set title
.SetTitle(new Title
{
Text = "Attendance Analytics From " + this.dateFromChart + " Until " + this.dateToChart,
})
//set subtitle
.SetSubtitle(new Subtitle
{
Text = "Grouped by Status",
})
//set tooltip
.SetTooltip(new Tooltip
{
Formatter = @"function(){ var sliceIndex = this.point.index; var sliceName = this.series.chart.axes[0].categories[sliceIndex]; return 'The value for <b>' + this.point.name + '</b> is <b>' + this.y +'</b>';}"
})
//Exporting options
.SetExporting(new Exporting
{
Enabled = true,
Scale = 5,
Buttons = new ExportingButtons
{
ContextButton = new ExportingButtonsContextButton
{
Align = HorizontalAligns.Center,
X = 350,
Y = -3
}
}
})
//set plot option
.SetPlotOptions(new PlotOptions
{
Column = new PlotOptionsColumn
{
AllowPointSelect = true,
Depth = 50,
DataLabels = new PlotOptionsColumnDataLabels
{
Enabled = true,
Style = "font:'14px', fontWeight:'bold'"
},
ShowInLegend = true,
ColorByPoint = true,
Cursor = Cursors.Pointer,
}
})
//set chart initial
.InitChart(new Chart
{
Type = ChartTypes.Column,
PlotBackgroundColor = null,
PlotBorderWidth = null,
PlotShadow = false,
Options3d = new ChartOptions3d // options for 3D
{
Enabled = true,
Alpha = 10,
Beta = 0,
Depth = 50,
ViewDistance = 25
}
})
//set xAxis formatter text
.SetXAxis(new XAxis
{
Categories = arrLabel,
Labels = new XAxisLabels
{
Style = "font: 'bold 10px Verdana,sans-serif'",
Align = HorizontalAligns.Center
}
})
//set yAxis formater text
.SetYAxis(new YAxis
{
Min = 0,
Title = new YAxisTitle { Text = "Amount" }
})
//remove watermark of highcharts
.SetCredits(new Credits
{
Enabled = false
})
//set Legend
.SetLegend(new Legend
{
Enabled = true,
ItemStyle = "color: '#2C3E50'"
})
//set Series
.SetSeries(new[]
{
new Series
{
Name = "Department",
Data = new Data(data)
},
});
chartContainerColumnDetail.Text = chartColumnDetail.ToHtmlString();
}
[[[{"name":"DO-Advisory Department","data":["15,32"]}]],[[{"name":"DO-Advisory Department","data":["15,32","11,18"]},{"name":"EDP Department","data":["15,32","11,18"]}]],[[{"name":"DO-Advisory Department","data":["15,32","11,18","8,1"]},{"name":"EDP Department","data":["15,32","11,18","8,1"]},{"name":"Enterprise Infrastructure Services Department","data":["15,32","11,18","8,1"]}]],[[{"name":"DO-Advisory Department","data":["15,32","11,18","8,1","1,6"]},{"name":"EDP Department","data":["15,32","11,18","8,1","1,6"]},{"name":"Enterprise Infrastructure Services Department","data":["15,32","11,18","8,1","1,6"]},{"name":"Pre Sales Department","data":["15,32","11,18","8,1","1,6"]}]],[[{"name":"DO-Advisory Department","data":["15,32","11,18","8,1","1,6","1,3"]},{"name":"EDP Department","data":["15,32","11,18","8,1","1,6","1,3"]},{"name":"Enterprise Infrastructure Services Department","data":["15,32","11,18","8,1","1,6","1,3"]},{"name":"Pre Sales Department","data":["15,32","11,18","8,1","1,6","1,3"]},{"name":"Sales Department 1","data":["15,32","11,18","8,1","1,6","1,3"]}]],[[{"name":"DO-Advisory Department","data":["15,32","11,18","8,1","1,6","1,3","1,0"]},{"name":"EDP Department","data":["15,32","11,18","8,1","1,6","1,3","1,0"]},{"name":"Enterprise Infrastructure Services Department","data":["15,32","11,18","8,1","1,6","1,3","1,0"]},{"name":"Pre Sales Department","data":["15,32","11,18","8,1","1,6","1,3","1,0"]},{"name":"Sales Department 1","data":["15,32","11,18","8,1","1,6","1,3","1,0"]},{"name":"IO-DCOPS Department","data":["15,32","11,18","8,1","1,6","1,3","1,0"]}]],[[{"name":"DO-Advisory Department","data":["15,32","11,18","8,1","1,6","1,3","1,0","1,0"]},{"name":"EDP Department","data":["15,32","11,18","8,1","1,6","1,3","1,0","1,0"]},{"name":"Enterprise Infrastructure Services Department","data":["15,32","11,18","8,1","1,6","1,3","1,0","1,0"]},{"name":"Pre Sales Department","data":["15,32","11,18","8,1","1,6","1,3","1,0","1,0"]},{"name":"Sales Department 1","data":["15,32","11,18","8,1","1,6","1,3","1,0","1,0"]},{"name":"IO-DCOPS Department","data":["15,32","11,18","8,1","1,6","1,3","1,0","1,0"]},{"name":"Human Capital Department","data":["15,32","11,18","8,1","1,6","1,3","1,0","1,0"]}]]]
List<object[]> returnColumnList = new List<object[]>();
string json = string.Empty;
var returnObject = new List<object>();
returnColumnList.Add(new object[] { "Depart" , "123", "345" });
returnColumnList.Add(new object[] { "Depart", "123", "345" });
foreach (var item in returnColumnList)
{
returnObject.Add(new {name = item.GetValue(0), data = (new object[] {item.GetValue(1) , item.GetValue(2)})});
}
json = new JavaScriptSerializer().Serialize(returnObject);
series: [{
name: 'DO-Advisory Department',
data: [15, 32]
}, {
name: 'EDP Department',
data: [26, 5]
}, {
name: 'Enterprise Infrastructure Services Department',
data: [8, 1]
}]