Jag skall göra ett diagram (ChartType=Bar) med data från en GridView. Jag har följande kod:
Kod:
Function CreateDataTable() As DataTable Dim col As DataColumn = Nothing Dim dtCart As New DataTable("tabAnalys")
col = New DataColumn("namn") col.DataType = System.Type.GetType("System.String") col.AutoIncrement = True col.AutoIncrementSeed = 1 dtCart.Columns.Add(col)
col = New DataColumn("svarA") col.DataType = System.Type.GetType("System.Int32") dtCart.Columns.Add(col)
For i = 1 To 5 Dim dr As DataRow = dtCart.NewRow() dr(1) = GridView1.Rows(i - 1).Cells(1).Text dtCart.Rows.InsertAt(dr, i - 1) Chart3.Series("Series1").AxisLabel = GridView1.Rows(i - 1).Cells(0).Text Next i
Return dtCart End Function
Detta ger som resultat att x-axelns ALLA etiketter (AxisLabel) blir lika, dvs lika med sista raden i kolumn 0 i GridView. Genom att sätta in Points(i-1) innan AxisLabel enligt följande:
[code Chart3.Series("Series1").Points(i - 1).AxisLabel = GridView1.Rows(i - 1).Cells(0).Text ][/code] trodde jag att problemet var löst, men det fungerade inte. Jag får följande felmeddelande:
ArgumentOutOfRangeException was unhandled by user code Index låg utanför intervallet. Det får inte vara negativt och måste vara mindre än mängdens storlek. Parameternamn: index
Vad är det för fel? Är det någon som kan hjälpa mig med detta?
|