51 messaggi dal 25 febbraio 2002
Buongiorno a tutti,
sto impazzendo con la seguente cosa. ho un file txt di questo tipo:

NOME;COGNOME;E_MAIL
A1;A2;A3
B1;B2;B3
C1;C2;C3
...


vorrei visualizzare in un gridView i vari dati (la prima riga come header e le altre come celle normali).
a priori non so quante siano le colonne (A1, A2, A3, An....) e
quindi ho impostato il gridview in AutoGenerateColumns="false".
il problema è che non mi importa nulla di nulla

qualcuno saprebbe aiutarmi?
grazie mille
41 messaggi dal 19 febbraio 2007
Ciao micolg!
Potresti postare il codice con cui effettui l'associazione alla GridView?

Ciao!
51 messaggi dal 25 febbraio 2002
Ciao!!!
il problema è proprio quello, non so come associarlo. per ora mi sono limitata al Response.write per avere conferma che venisse letto.

ciao e grazie ;)
Modificato da micolg il 28 agosto 2007 17.26 -
41 messaggi dal 19 febbraio 2007
Così su due piedi potresti creare via codice una DataTable da associare alla GridView in questione.
Prova questo codice (passibile di ottimizzazione..  )


string file_path = "data.txt"; /* percorso relativo del file*/
        char[] tokens = new char[1] { char.Parse(";") };
        DataTable dt = new DataTable("tbl_dati");

        System.Collections.Generic.List<string> _rows = new System.Collections.Generic.List<string>();

        using (System.IO.StreamReader rd = new System.IO.StreamReader(Server.MapPath(file_path)))
        {
            while (!rd.EndOfStream)
            {
                _rows.Add(rd.ReadLine());
            }

            rd.Close();
        }


        string[] _columns = _rows[0].Split(tokens);

        int i;

        for (i = 0; i < _columns.Length; i++)
        {
            dt.Columns.Add(new DataColumn(_columns[i]));
        }


        for (i = 1; i < _rows.Count; i++)
        {
            DataRow rw = dt.NewRow();
            string[] _cells = _rows[i].Split(tokens);

            if (_cells.Length > _columns.Length)
            {
                throw new Exception("Numero celle maggiore delle colonne alla riga " + i.ToString());
            }

            int j;

            for (j = 0; j < _cells.Length; j++)
            {
                rw[j] = _cells[j];   
            }

            dt.Rows.Add(rw);
        }



        this.my_grid.DataSource = dt;
        this.my_grid.DataBind();


Naturalmente il codice assume che la prima riga sia SEMPRE contenente i nomi di colonna e le restanti siano le "celle" della tua tabella.
Inoltre devi settare la proprietà AutoGenerateColumns a true.

Spero faccia al caso tuo!
Fammi comunque sapere..

Ciao!
51 messaggi dal 25 febbraio 2002
per prima cosa grazie per la risposta.
ovviamente il tuo codice funziona alla perfezione ma nel mio primo messaggio ho tralasciato un aspetto... fondamentale. tutti i problemi mi sorgono perchè alla fine di tutte le righe vorrei aggiungerne una contenente una checkbox per ogni colonna. inizialmente avevo messo nella gridView

<Columns>
  <asp:TemplateField  HeaderText="Nome">
    <ItemTemplate>
       <asp:CheckBox ID="check" Checked="true" runat="server" />                    
    </ItemTemplate>
  </asp:TemplateField>
  <asp:TemplateField  HeaderText="cognome"><ItemTemplate>...<ItemTemplate></asp:TemplateField>
  .....
</Columns>


con autogenerate="false" ma così non riuscivo a far si che il numero delle colonne fosse dinamico.

tu hai un'idea di come fare? ora provo partendo dal tuo codice.

grazie ancora :)
Il tuo ultimo messaggio non si capisce tanto... vuoi aggiungere una riga di check? O per caso una colonna di check? Ci spieghi cosa stai cercando di realizzare?

Il fatto di avere autogenerate a true o false non ti cambia la vita: se a true hai già tutte le colonne del datasource(e se non sbaglio questo non significa che non puoi aggiungerne altre), se a false puoi ottenere la stessa cosa aggiungendo le colonne del datasource a mano.

Ormai programmano tutti... ma la professionalità appartiene a pochi
51 messaggi dal 25 febbraio 2002
ops, ci riprovo

quello che vorrei è aggiungere una riga di check. Il tutto perchè vorrei poter selezionare dalla gridview le colonne che mi servono per altre operazioni successive (e quindi prelevare SOLO i dati contenuti nelle celle di queste colonne).

ho trovato un articolo che penso mi possa aiutare e sto cercando di "capirlo". non posto il link perchè non so se sia possibile qui

spero di essermi spiegata meglio
grazie ancora

dimenticavo....grazie anche per la precisazione riguardo l'autoGenerateColumns ;)
Modificato da micolg il 29 agosto 2007 14.59 -
Mi verrebbe da consigliarti di aggiungerli sugli header...

Ormai programmano tutti... ma la professionalità appartiene a pochi

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.