Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 42
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144

    problema con placeholder e panel

    Ciao ragazzi, ho un problema che mi sta portando sull'orlo del suicidio, spero possiate aiutarmi.
    Ovviamente non è nulla di strano, ma credo sia dovuto semplicemente alla mia scarsa conoscenza di c# e .net.
    Ho una funzione A con dentro un ciclo while che a ogni esecuzione, del ciclo intendo, crea una dropdownlist dandole un ID = "p" + i.ToString() dove i è ovviamente un contatore e la inserisce in un placeholder(o panel, non cambia nulla) all'interno di una pagina .aspx.
    Il problema è che se cerco di accedere a queste ddl dall'interno del ciclo stesso riesco, ma se provo a farlo utilizzando un altro ciclo all'interno di un'altra funzione B non funziona.
    Ah, il metodo che provo ad utilizzare per accedere è il FindControl in questo modo:
    (DropDownList)nomePlaceHolder.FindControl("p" + i.ToString()).SelectedItem.Text

    Qualcuno ha idea del perchè?

    Spero possiate aiutarmi, perchè altrimenti impazzisco.

    Colgo l'occasione per salutare tutti e augurarvi buone vacanze!

    conte06

  2. #2
    se i drop sono all'interno di un panel.

    devi fare un foreach nel panel e fare i cast degli oggetti che trovi.

    Quando trovi un'oggetto di tipo DropDownList allora recuperi il valore.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    Daniele80, innanzitutto sei un grande perchè mi aiuti sempre.
    Comunque ho scoperto qual'è il problema, ora però non so come risolverlo.
    In pratica il placeholder(o anche il panel) si svuota quando faccio un postback, cioè quando schiaccio un tasto(anche se questo non fa nulla). Hai qualche idea? Nonn riesco a capire il perchè, comunque è per quello che non riesco ad accedere dalla funzione esterna, perchè questa viene lanciata da un tasto(che quindi agisce dopo che il placeholder(o panel) si è svuotato).

    Attendo fiducioso il tuo aiuto...

  4. #4
    mica ho capito.

    tu nel page_load in
    if(!IsPostback)

    crei tutti i tuoi DROP dinamicamene giusto? ho capito bene?

    Questi li dovresti vedere anche dopo il postback...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    no, non nel page load, ma in una funzione, che comunque è una sorta di page load, cioè viene lanciata quando faccio comparire un panel(che a sua volta contiene il placeholder)

    Il codice è così:

    La funzione che crea le dropdownlist è:

    public void funzA()[

    SqlDataAdapter res = funzPIPPO();
    int i = 0;
    while(res.Read())[
    DropDownList ddl1;
    ...
    nomePlaceholder.Controls.Add(ddl1);
    i++
    ]
    ]

    Dunque dopo averli creati, se clikko su un tasto qualsiasi il placeholder si svuota. Ho provato(a casaccio perchè non serve a nulla, ma per sicurezza...) a inserire un if(IsPostBack) prima dell'Add, ma non serve a nulla(ovviamente).

    Ora non so proprio come fare...
    Capito?

    aiuto...

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    Aiuto!!!

  7. #7
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Ogni volta che fai un'operazione lato server se crei un controllo in modo dinamico, lo devi ricreare nuovamente.
    Sinceramente non vedo l'utilità di un'operazione del genere dato che perdi ogni volta anche la selezione fatta dall'utente e la devi reimpostare.
    Il mio consiglio è quello di non crearlo da codice ma, solo di popolarlo con una routine che carica i dati(ogni volta se è pesantissimo oppure di lasciare il compito alla viewstate se sono pochi item)
    Ciao
    Legnetto

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    Originariamente inviato da Legnetto
    Ogni volta che fai un'operazione lato server se crei un controllo in modo dinamico, lo devi ricreare nuovamente.
    Perchè? In pratica quando creo le dropdownlist col ciclo si perdono subito? Non c'è modo per bloccarle?

    [B]
    Sinceramente non vedo l'utilità di un'operazione del genere dato che perdi ogni volta anche la selezione fatta dall'utente e la devi reimpostare.
    è l'unica cosa che mi è venuta in mente...sigh


    [B]
    Il mio consiglio è quello di non crearlo da codice ma, solo di popolarlo con una routine che carica i dati
    cioè?

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Legnetto
    Ogni volta che fai un'operazione lato server se crei un controllo in modo dinamico, lo devi ricreare nuovamente.
    Sinceramente non vedo l'utilità di un'operazione del genere dato che perdi ogni volta anche la selezione fatta dall'utente e la devi reimpostare.
    Il mio consiglio è quello di non crearlo da codice ma, solo di popolarlo con una routine che carica i dati(ogni volta se è pesantissimo oppure di lasciare il compito alla viewstate se sono pochi item)
    Ciao
    Legnetto
    Faccio mie le regole d'oro di Legnetto
    1)Ogni volta che fai un'operazione lato server se crei un controllo in modo dinamico, lo devi ricreare nuovamente
    c'è poco da spiegare, vale naturalmente anche per i controlli utente; da ricordare sempre

    2)Sinceramente non vedo l'utilità di un'operazione del genere dato che perdi ogni volta anche la selezione fatta dall'utente e la devi reimpostareLa creazione di controlli via codice è vecchia come windows. Ma l'ho sempre vista come tecnica specialistica, non come tecnica della quotidianità, in tanti linguaggi, da VisualBasic a PowerBuilder. Perchè scomodare questa tecnica specialistica quando si può magari rendere invisibile il controllo?

    3) Il mio consiglio è quello di non crearlo da codice ma, solo di popolarlo con una routine che carica i dati(ogni volta se è pesantissimo oppure di lasciare il compito alla viewstate se sono pochi item) che dire di più: parole sante

    Pietro

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    Originariamente inviato da pietro09
    Faccio mie le regole d'oro di Legnetto
    1)Ogni volta che fai un'operazione lato server se crei un controllo in modo dinamico, lo devi ricreare nuovamente
    c'è poco da spiegare, vale naturalmente anche per i controlli utente; da ricordare sempre

    2)Sinceramente non vedo l'utilità di un'operazione del genere dato che perdi ogni volta anche la selezione fatta dall'utente e la devi reimpostareLa creazione di controlli via codice è vecchia come windows. Ma l'ho sempre vista come tecnica specialistica, non come tecnica della quotidianità, in tanti linguaggi, da VisualBasic a PowerBuilder. Perchè scomodare questa tecnica specialistica quando si può magari rendere invisibile il controllo?

    3) Il mio consiglio è quello di non crearlo da codice ma, solo di popolarlo con una routine che carica i dati(ogni volta se è pesantissimo oppure di lasciare il compito alla viewstate se sono pochi item) che dire di più: parole sante
    Quindi? Come posso fare?

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.