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

    Asp.Net 3.5 : caricare solo record per la pagina selezionata in gridview

    Ciao a tutti,

    ho un problema nel caricamento di una gridview ( che contiene milioni di dati ) e vorrei risolverlo
    settando dinamicamente il numero di pagine da visualizzare

    codice:
    protected void linqDs_Selecting(object sender, LinqDataSourceSelectEventArgs e)
            {
                   DataContext dc = new DataContext();  // e qui viene popolato  la entity 
    
                    int count = dc.NomeEntity.Count();
                    gridview1.DataSource = dc.NomeEntity;
    
                    gridview1.PagerSettings.Mode = PagerButtons.NumericFirstLast;
                    gridview1.PagerSettings.PageButtonCount = (count / gridview1.PageSize)+1;
      
            e.Result = dc.NomeEntity.Skip(gridview1.PageIndex * PageSize).Take(gridview1.PageSize);
           }
    Il problema è che il paginatore non mi permette di scorrere le pagine in quanto setta automaticamente "PageSize" e quindi basta una sola pagina per visualizzarlo.


    Qualche idea di come posso risolvere?


    Grazie

    Mike "The Ram"

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    il numero totale degli items lo deve sapere anche, anzi soprattutto, il datasource e dovresti memorizzarlo in e.Arguments.TotalRowCount.
    in e.Result ci va la query e dovrebbe essere a posto cosi senza bisogno di toccare la gridview

  3. #3
    magari dico una ca.......a,

    ma credo che la tua griglia sia già associata al LinqDataSource, quindi, dal tuo codice, toglierei subito la riga
    codice:
    gridview1.DataSource = dc.NomeEntity;
    poi fai come ti ha detto rsdpzed

    ciao

  4. #4
    Ciao,

    come hai ben detto Gluck, il datasource era già associato, ma il problema sta nelle query lato linq to sql.

    Il problema è ricaricarlo per ogni pagina utilizzando il costrutto skip(x). take(y).

    Quando i dati sono dell'ordine delle migliaia, arrivare all'ultima pagina significa skippare una miriade di record, cosa che mi fa saltare in sqlException e.result


    Mike "The Ram"

  5. #5
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    quindi ora funziona tranne che per le ultime pagine? come hai modificato il codice e qual'è il messaggio della sqlException?

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.