Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641

    [asp.net 2.0] C#: checkbox in gridview

    buongiorno, ho un problemino.
    io estraggo dei dati da un file txt e li carico in una gridview. nell'header di questa, aggiungo per ogni cella una checkbox. il problema è che ad ogni postback le checkbox scompaiono e non riesco a farle rimanere e quindi a sapere quali siano checkati e quali no.

    questo è il codice che ho utilizzato:

    aspx.cs
    codice:
    public partial class data : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            
            
        }
    
        protected void btUploadData_Click(object sender, EventArgs e)
        {
            string filePath = Request.PhysicalApplicationPath;
            filePath += "FileCaricati/";
    
            openFileSelected(filePath);
        }
        protected void openFileSelected(string nomeFile)
        {
            
            string file_path = "FileCaricati/anagrafiche_2.txt"; /* percorso relativo del file*/
            char[] tokens = new char[1] { char.Parse(";") };
            DataTable dt = new DataTable("GridView1");
    
            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++)
            {
    _columns[i] = _columns[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.GridView1.DataSource = dt;
            this.GridView1.DataBind();
    
            for (int k = 0; k < 4; k++)
            {
                CheckBox nameCb = new CheckBox();
                nameCb.EnableViewState = true;
                nameCb.Text = GridView1.HeaderRow.Cells[k].Text;
                nameCb.ID = "nameCb" + k.ToString();
                GridView1.HeaderRow.Cells[k].Controls.Add(nameCb);
    
            }
    
            string MyGridView = GridView1.ToString();
            
        }
    
    }
    aspx
    codice:
    <asp:Button ID="Button1" runat="server" Text="Button" />
            <asp:Button ID="btUploadData" runat="server" Text="Conferma" OnClick="btUploadData_Click"  />
            <asp:GridView ID="GridView1" AutoGenerateColumns="true" runat="server">
                <Columns></Columns>
            </asp:GridView>
    grazie mille

  2. #2
    perchè dici...il problema è che ad ogni postback le checkbox .....

    ogni volta che selezioni una checkbox devi fare un postback?

    Ciao
    Scuba
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    no ma visto che nella pagina ho altri elementi che possono causare un postback e visto che volevo recuperare il valore checked con un bottone... al click di questo scompaiono le checkbox :master:

    sto provando a "memorizzare" le mie celle di testata in un viewState ma...non riesco

  4. #4
    fai così, nell' evento page_load:

    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {

    ti crei la tua gridview e quello che ti serve...

    }

    }

    così facendo le checkbox ti manterranno le selezioni

    Ciao
    Scuba
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    correggimi se sbaglio ma.... non posso metterlo lì perchè la creazione della gridview deve essere fatta dopo l'upload di un file.
    quindi io al momento seleziono il file con fileUpload, clicco sul bottone "conferma" che mi apre il file e visualizza la gridview. a questo punto checkko e uncheckko le mie colonne e devo cliccare su un bottone "conferma campi".

    grazie

  6. #6
    esatto
    ciao
    Scuba
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    si ma sono sempre lì, se clicco sul bottone mi scompaiono le checkbox

  8. #8
    ma tu non invii quando clicchi conferma campi? :master:
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    ora sto facendo un banalissimo response.write, ma non essendoci più le checkbox non mi da nulla. infatti se al click del bottone faccio il count dei controlli presenti nell header, mi da 0.
    quello che dovrei fare è riuscire a lasciare la gridview sempre uguale, anche dopo un qualsiasi postback

    (grazie per la pazienza )

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.