Jag skall göra ett diagram (ChartType=Bar) med data från en GridView. Jag har följande kod: När binder du datat till Chart-objektet? Jag har det så här: Det jag menar är att du nog måste sätta (de individuella) etiketterna efter DataBind() anropats. Jaha, var det så enkelt. Nu funkar det.Ändra AxisLabel i diagram i Codebehind
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:
Chart3.Series("Series1").Points(i - 1).AxisLabel = GridView1.Rows(i - 1).Cells(0).Text
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?
Sv: Ändra AxisLabel i diagram i Codebehind
Om du ska sätta om AxisLabel för en specifik Point så borde det behöva ske efter du har bundit datat.Sv:Ändra AxisLabel i diagram i Codebehind
Sub diagram()
Chart3.DataSource = CreateDataTable()
Chart3.DataBind()
End Sub
Det är första gången jag jobbar med ett Chart-objekt så jag har lite dålig koll.
Hur gör jag bindningen till GridView i så fall?Sv: Ändra AxisLabel i diagram i Codebehind
Typ
Sub diagram()
Chart3.DataSource = CreateDataTable()
Chart3.DataBind()
For i = 1 To 5
Chart3.Series("Series1").Points(i - 1).AxisLabel = GridView1.Rows(i - 1).Cells(0).Text
Next i
End Sub
Sv:Ändra AxisLabel i diagram i Codebehind
Tack för hjälpen.