[C#] Datagrid index out of range

Pagina: 1
Acties:

  • Raenius
  • Registratie: December 2003
  • Laatst online: 20-08-2021
Hey mense,

Oke ik heb een hele vage fout...ik heb drie datagrids op een scherm en de laatste twee kan ik gewoon een voorgedefinieerde width geven maar de eerste om de een of andere reden niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        SqlDataAdapter da = new SqlDataAdapter("SELECT name AS Router_Name "+
"FROM ROUTERS WHERE status=0 "+
"AND suspended='no'", myConnection);

        // create a new dataset
        DataSet ds = new DataSet();

        // fill dataset
        da.Fill(ds, "ROUTERS");

        dataGrid1.DataSource = ds.Tables["ROUTERS"];

        // DatagridTableStyle
            DataGridTableStyle dgts3 = new DataGridTableStyle();
            dgts3.MappingName = "Routers";
            
            dataGrid1.TableStyles.Clear();
            dataGrid1.TableStyles.Add(dgts3);

            try
                {
                dgts3.GridColumnStyles[0].Width = 130;
                dgts3.RowHeadersVisible = false;
                dgts3.DataGrid.Refresh();
                }

            catch(Exception qt)
                {
                MessageBox.Show(qt.ToString());
                }


De width van de datagrid is 168 x 172 dus daar ligt het niet aan. De andere twee datagrids zijn op precies dezelfde manier gedefinieerd en deze werken correct.

Als ik de code run dan krijg ik dus bij de eerste datagrid de volgende error:

System.argumentoutofrangeexception : index was out of range. Must be non-negative and less then the size of the collection.

Heb het grid ookal eens opnieuw aangemaakt en dergelijke maar dat hielp ook niet...heeft iemand een idee of suggestie?

Alvast bedankt...

http://www.catalogged.net/


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:25
Blijkbaar zal de GridColumnStyles van die datagrid dus geen GridColumnStyles bevatten.

https://fgheysels.github.io/


  • Raenius
  • Registratie: December 2003
  • Laatst online: 20-08-2021
Kan je dat toevallig iets meer uitleggen? :?

http://www.catalogged.net/


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:25
Je wilt blijkbaar iets uitlezen dat er niet is.
Je leest GridColumnStyle[0] uit, en er wordt een fout gegeven dat er geen GridColumnStyle is op die positie.

Uit de .NET help:
the DataGrid uses the MappingName to determine which object supplies the data for the grid. For example, if the data source is a DataSet that contains three DataTable objects, the MappingName must match the TableName of one of the objects. If the MappingName does not match any of the TableName values, the default settings will be used to display data for each table, and the DataGridTableStyle settings will be ignored
Het zit hem dus in je MappingName. Je geeft een DataSet de naam ROUTERS, en als MappingName geef je Routers mee.
Die name is case-sensitive denk ik; dus, zorg ervoor dat je ofwel altijd ROUTERS gebruikt, ofwel altijd Routers.

[ Voor 62% gewijzigd door whoami op 23-04-2004 09:32 ]

https://fgheysels.github.io/


  • Raenius
  • Registratie: December 2003
  • Laatst online: 20-08-2021
EDIT: Ja perfect dat was het, wel even opletten toen ik alles uppercase maakte toen crashte de boel compleet. Toen ik alles lowercase maakte werkte alles in een keer...vreemd...

In ieder geval hardstikke bedankt ik kan weer verder!

[ Voor 82% gewijzigd door Raenius op 23-04-2004 09:45 ]

http://www.catalogged.net/