SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: Iñigo en Jueves 15 de Julio de 2010, 18:09

Título: GridView + ArrayList/struct
Publicado por: Iñigo en Jueves 15 de Julio de 2010, 18:09
Hola a todos.

Tengo el siguiente problema, y a ver si alguien me puede echar un cable.

Resulta que tengo la siguiente estructura:

 public ArrayList myCollection;//struct of database records (MyDates)

   
    public struct MyDates
    {
        public string _id_recordatorio;
        public DateTime _inicio;
        public DateTime _fin;
        public string _tipo;
        public string _cabecera;
        public string _categoria;
        public string _nota;
        public string _lugar;
        public bool _sync;


    }

Quiero rellenar un gridview con el contenido de myCollection, pero no encuentro la manera.

He intentado asociar al gridview el arraylist de la siguiente manera:

  GridView1.DataSource = myCollection;
  GridView1.DataBind();


y me sale el siguiente error:

"El origen de datos de GridView con el identificador 'GridView1' no tenía ninguna propiedad ni atributos a partir de los cuales generar campos. Asegúrese de que el origen de datos tiene contenido."

Verifico el contenido de myCollection y es correcto.

Que estoy haciendo mal?

Muchas gracias.
Título: Re: GridView + ArrayList/struct
Publicado por: eltruhanero en Jueves 15 de Julio de 2010, 20:07
puedes adjuntar la solucion que estas usando?
Título: Re: GridView + ArrayList/struct
Publicado por: Iñigo en Viernes 16 de Julio de 2010, 19:34
si claro:

 dr = miBD.PreguntarFilasDR(sql, 12);


         
            MyDates temp;
            myCollection = new ArrayList();
           
           
            while (dr.Read())
            {
                temp = new MyDates();
                temp._id_recordatorio = dr["id_recordatorio"].ToString();
                temp._inicio = (DateTime)dr["HComienzo"];
                temp._fin = (DateTime)dr["HFin"];
                temp._tipo = dr["Tipo"].ToString();
                temp._categoria = dr["nombre"].ToString();
                temp._cabecera = Propiedades.Cabecera[dr["id_cabecera"].ToString()].ToString();
                temp._nota = dr["nota"].ToString();
                temp._lugar = dr["lugar"].ToString();
                temp._sync = Convert.ToBoolean(dr["Sincronizado"]);
                myCollection.Add(temp);
            }

           
           
            dr.Close();
            GridView1.DataSource = myCollection;
            GridView1.DataBind();