Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C#] Recuperare Button.ID

    Ciao,

    Ho un problema probabilmente banale, ma essendo novizio del linguaggio nonriesco a venirne a capo:
    Ho una pagina con 2 gruppi di asp:Button e dovrei, cliccando su un pulsante di un gruppo, scrivere un testo(numScelto) in un specifico pulsante dell'altro gruppo. Conosco l'ID di ogniuno dei pulsanti in formato "casnn".
    Ho provato:

    inserito all'interno di due loop annidati (x e y):
    codice:
    ((Button)FindControl("cas" + (Convert.ToString(x) + Convert.ToString(y)))).Text = Convert.ToString(numScelto);
    mi riporta errore: Object reference not set to an instance of an object.

    Spero di essermi spiegato a sufficienza.
    Grazie in anticipo.

    Luca

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    C# e tutti i linguaggi .NET vengono trattati nel forum "Visual Basic e .NET Framework".

    Sposto.

    PS: Il codice va postato all'interno degli appositi tag CODE.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3

    Moderazione

    Ma stiamo parlando di ASP.NET?
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Si MItaly, stiamo parlando di ASP.net!

  5. #5

    Moderazione

    Allora ti sposto nella sezione apposita.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    codice:
    ((Button)FindControl("cas" + (Convert.ToString(x) + Convert.ToString(y)))) //1
    .Text = Convert.ToString(numScelto); //2
    riga1: se findcontrol non riesce a trovare il controllo o se il cast non va a buon fine ritorna null e...

    riga2:...richiamare la proprietà Text da un null non è possibile e da qui l'errore che riporti.

    FindControl è un metodo della classe control ed è accessibile per tutti i controlli poichè essi possono contenere controlli interni.
    Findcontrol cerca solo i suoi controlli figlio e non scende nella discendenza (nipoti ecc.).
    Infine, poichè stai scrivendo codice in metodi della tua classe pagina che deriva da Page la quale deriva a sua volta da Control, succede che chiamare FindControl come fai tu significa ricercare solo i figli diretti della tua pagina e non i pulsanti che magari sono inseriti in un Panel.

    Se i pulsanti si trovano in un Panel, diciamo Panel1 dovresti fare cosi:
    codice:
    Button b = Panel1.FindControl(ecc.ecc..) as Button;
    if (b != null)
      b.Text = Convert.Tostring(ecc. ecc.);

  7. #7
    In effetti il controllo è interno a TabContainer/TabPanel.
    Ora funziona!
    Grazie infinite, ti devo una birra!

    Ciaooooooooo.
    Luca

  8. #8
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Originariamente inviato da itazoo
    ...una birra!
    Luca

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.