• User

    [ASP.NET] DataGrid (e gestione dello stato della sessione)

    Ciao a tutti ho bisogno di aiuto, ho creato un DataGrid linkato che mi estra da un db i dati di un top di persone che in una struttura gerarchica si trovano al livello1, cliccando sul codice di una di queste persone scendo di un livello e con una window.open mi ricarico la pagina visualizzando tutti gli utenti del livello2, posso scendere tranquillamente, salendo di livello con un pulsante indietro, va tutto bene, quando poi scendo nuovamente passando per un codice sconosciuto fa il Page_load qui tutto ok, ma scendendo per un codice già visitato lui non fa il Page_load come se si tenesse gli indici già visitati in sessione, a me questo non va bene, perchè ogni volta che scendo devo aver traccia del numero di livelli percorsi, potete aiutarmi grazie...:x


  • Moderatore

    Ciao,
    credo che questo sia un classico esempio in cui bisogna definire una page-level property (cioè un attributo custom della tua pagina.aspx) mantenuta e gestista tramite il Viewstate di ASP.NET.

    In questo articolo viene spiegata questa tecnica per implementare la paginazione di un Repeater, dove la pagina corrente viene gestita tramite una ***page-level property ***denominata CurrentPage.

    
    ...
    public int CurrentPage
    {
       get
       {
          // look for current page in ViewState
          object o = this.ViewState["_CurrentPage"];
          if (o == null)
             return 0; // default page index of 0
          else
             return (int) o;
       }
    
       set
       {
          this.ViewState["_CurrentPage"] = value;
       }
    } 
     
    private void cmdPrev_Click(object sender, System.EventArgs e)
    {
       // Set viewstate variable to the previous page
       CurrentPage -= 1;
    
       // Reload control
       ItemsGet();
    }
    
    private void cmdNext_Click(object sender, System.EventArgs e)
    {
       // Set viewstate variable to the next page
       CurrentPage += 1;
    
       // Reload control
       ItemsGet();
    } 
     
    ...
    
    

    Potresti "ispirarti" a questa tecnica per gestire una tua ***page-level property ***denominata, ad esempio, **SubDatagridLevel **per gestire il tuo livello è l'ID del "padre"...

    :ciauz:


  • User

    Grazie sei stato veramente gentilissimo....avevo messo altri commenti in altri forum....ma mai nessuno mi aveva risposto....:D :D:D
    Posso sottoporti un altro quesito!!!!

    Ho racchiuso il dataGrid in un div in cui gli ho messo una scroolbar, su explorer si vede ma su mozilla no...😢 mi sai dire perchè? e come devo fare ?
    come avrai notato non sono un esperta!!! ma sto cercando di imparare!!!

    ecco il codice!!!
    messo nel aspx 😢

    <div style="margin-left:65px;" style="height:300;width:700;background-color:;overflow:auto">
    <ASP:DATAGRID >
    </ASP:DATAGRID>

    Adoro questo forum !!!!:yuppi:


  • Moderatore

    @ManuMinù said:

    Ho racchiuso il dataGrid in un div in cui gli ho messo una scroolbar, su explorer si vede ma su mozilla no...😢 mi sai dire perchè? e come devo fare ?
    come avrai notato non sono un esperta!!! ma sto cercando di imparare!!!
    ecco il codice!!!
    messo nel aspx 😢

    >
    <div style="margin-left:65px;" style="height:300;width:700;background-color:;overflow:auto">
    <ASPdATAGRID >
    </ASPdATAGRID>
    **</div>**
    
    >```
     
    Adoro questo forum !!!!:yuppi:
    Prova così:
    

    <div style="height: 300px; overflow :auto;border:solid 1px #9c8662;>
    ...datagrid
    </div>

     
    Grazie per i complimenti ;)

  • User

    😢 non funziona....se metto quel codice non mi visualizza più il dataGrid come una tabella ma come fosse una linea di testo!!!! 😢


  • Moderatore

    @ManuMinù said:

    😢 non funziona....se metto quel codice non mi visualizza più il dataGrid come una tabella ma come fosse una linea di testo!!!! 😢

    Ma senza DIV è tutto ok anche quando il datagrid è vuoto ?
    Hai verificato che cosa succede - senza DIV esterno - quando la query non restitisce nessun risultato?
    Scommetto che non hai fatto questo controllo e quindi il DIV esterno "degenera" su una linea... non esistendo, a run-time, una <Table> da racchiudere...


  • User

    già fatto il controllo se il datagrid è vuoto appare solo l'intestazione delle colonne....😢 togliendo il div esterno...lasciandolo fa lo stesso risultato...😢