Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    532

    GridViewRowEventHandler passaggio variabili

    Uso ASP.net, C#.

    Creo in una parte del codice, la seguente griglia

    ...
    GridView gg= new GridView();

    string miavardaaggiungere1 = "testo";

    string miavardaaggiungere2 = "testo";
    ...

    di seguito definisco un gestore di eventi come sotto,

    gg.RowCreated += new GridViewRowEventHandler(gg_RowCreated);

    e scrivo la funzione gg_RowCreated

    void gg_RowCreated(object sender, GridViewRowEventArgs e)
    {
    ...
    }

    Domanda
    come passare miavardaaggiungere1 e miavardaaggiungere2 all'interno di gg_RowCreated ?

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Non puoi e non serve. Quello è un callback che viene passato alla gridview e viene richiamato da quest'ultima. Le informazioni passate sono quelle relative allo stato della gridview: è lei che ti da "informazioni" non viceversa.
    Quelle variabili le devi acquisire partendo dal corpo della funzione di callback. Se sono in scope (a livello di pagina) tanto meglio altrimenti implementa una sorta di Service per recuperarle.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    532
    posso chiederti un esempio?

  4. #4
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    In questo esempio creo una gridview e aggiungo una cella accanto ad ogni riga che viene creata. Il contenuto della cella var1 viene definito in un altro posto (nel page_load).

    Per semplicità dichiaro var1 a livello di classe cosi è in scope nell'handler dell'evento. Ma potrebbe essere dichiarato e valorizzato in qualsiasi altro modo. Quello che conta è capire che la responsabilità di valorizzare var1 è della classe WebForm1 e non della GridView. Anzi, Il motivo per cui la gridview espone gli eventi è proprio perche "vuole disinteressarsi" di cosa fanno i subscriber allo scatenarsi degli stessi. Lei avvisa e basta.

    codice:
    public partial class WebForm1 : System.Web.UI.Page
        {
            private string[] dati = { "uno", "due", "tre" };
            private string var1;
    
            protected void Page_Load(object sender, EventArgs e)
            {
                var1 = "ciao"; 
    
                GridView gw = new GridView();
                gw.DataSource = dati;
                gw.DataBind();
                gw.RowCreated += OnCreated;
    
                this.Form.Controls.Add(gw);
            }
    
            public void OnCreated(object sender, GridViewRowEventArgs e)
            {
                GridViewRow row = e.Row;
                if (row.RowIndex >= 0)
                    row.Cells.Add(new TableCell { Text = var1 });
            }
        }

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.