Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    aggiungere funzione su evento via codice

    Ho creato una tabella dinamicamente aggiungendo righe e celle in base a diverse query etc etc.
    Ora ho delle celle che contengono dei controlli textbox sull'onchange dei quali vorrei scatenare delle operazioni....
    Considerando che i controlli sono stati aggiunti via-codice come le celle della tabella (vedi codice sotto), come faccio sempre via-codice a dirgli che sull'evento onChangeText del controllo deve lanciare una funzione X (che farà altri disastri)?

    Cos' ho creato i controlli e le celle
    codice:
    Dim nuovacella As New TableCell
    Dim Tbx = New TextBox()
    Tbx.ID = "campo1"
    Tbx.Text = 0
    nuovacella.Controls.Add(Tbx)

    Su msdn (ghe vegna un ben!) ho trovato che si fa una cosa così:
    this.TextBox2.TextChanged += new System.EventHandler(this.TextBox_TextChanged);
    con poi la gestione dell'evento definita fuori dal blocco del load di pagina.

    Nel mio caso ho provato a mettergliela così:
    Tbx.TextChanged += New System.EventHandler(Tbx.TextBox_TextChanged)
    inserito la riga prima del nuovacella.controls.Add(Tbx), ma non è corretto....

    Helps and suggestions are welcome.
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    up
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Se non fossimo in asp.net la risposta alla domanda sarebbe questa:
    codice:
    //versione compatta con la lambda (nel caso di un handlar di poche righe)
    tbx.TextChanged += (s,e) => {
            //codice dell'evento
        }
    
    //versione normal
    
    tbx.TextChanged += DinamicTextboxChangedHandler;
    
    //dove DinamicTextboxChangedHandler è una private con la firma di un event handler:
    private void DinamicTextboxChangedHandler(object sender, Eventargs e)
    {
        //Codice evento
    }
    Solo che tu hai anche un altro problema, siamo in asp.net e ad ogni postback tu perdi le textbox che crei dinamicamente perciò quando crei la textbox devi salvartele in session( le proprietà piu importanti non l'intero oggetto) e ricrearle ad ogni postback.

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.