311 messaggi dal 25 novembre 2010
salve!
uso jquery datatable e un repeater per rappresentare i dati in una pagina.
solo che i dati che la query estrapola sono parecchi (circa 14 mila records), e ogni tanto lo script in caricamento si blocca.
pensavo di rendere asincroni il caricamento della pagina e l'esecuzione della query.
non so, caricare tutta la pagine a prescindere dalla query, oppure prima la query e poi caricare il resto.
avete qualche indicazione su questo argomento???
311 messaggi dal 25 novembre 2010
avevo pensato di usare un Thread apposito:
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Thread thread = new Thread(new ThreadStart(initDataSource())); // ERRORE
                thread.Start();
            }
            catch (OdbcException ex)
            {
                Label err = (Label)Master.FindControl("lbl_error");
                err.Text = ex.Message;
            }
        }

        private void initDataSource()
        {
            repeaterClienti.DataSource = db.getCodiciClienti();
            repeaterClienti.DataBind();
        }

il problema è che mi da errore, anche se in vari esempi online mmi pare di aver fatto uguale:
E' previsto il nome di un metodo

ho messo il commento dove c'è l'errore.
sinceramente nn capisco cosa intenda.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
dovresti mostrare solo una pagina di risultati alla volta poiché è improbabile che l'utente sia interessato a tutti i 14.000 records. Lascialo libero di cambiare pagina, se vuole. In quel caso partirà una chiamata ajax al server, affinché siano recuperati i prossimi risultati da mostrare.

Così la pagina sarà molto più snella e l'esperienza dell'utente più soddisfacente.

Dato che usi le DataTables di jQuery, hai tutto questo meccanismo di paginazione client della tabella già fatto.
http://datatables.net/release-datatables/examples/data_sources/server_side.html

Usa gli strumenti di sviluppo di Internet Explorer (tasto F12) o Firebug per esaminare le chiamate ajax che si verificano ad ogni pressione dei tasti "Next" e "Previous" della tabella.
Nota che la richiesta al server contiene le informazioni sul numero di record da visualizzare, sul numero di pagina corrente e sull'ordinamento. Tu, lato server, dovrai raccogliere queste informazioni dalla querystring e restituire solo i risultati rispondenti a quei criteri, formattati in JSON.

Quindi, abbandona il repeater e il multithreading. I risultati dovranno essere forniti da un HttpHandler dedicato allo scopo, oppure da un PageMethod.

ciao
Modificato da BrightSoul il 20 marzo 2014 23.29 -

Enjoy learning and just keep making
311 messaggi dal 25 novembre 2010
ciao scusa il ritardo.
alla fine ho risolto in altro modo.
ho impostato una ricerca obbligatoria con un minimo di caratteri da cercare.
la query così non è molto pesante.
appena ho un attimo di tempo in più cerco di seguire la tua soluzione.
intanto ti ringrazio!!
11 messaggi dal 06 dicembre 2001
Ti chiedo scusa... sei riuscito a dire al datatables di inviare la ricerca solo dopo n caratteri digitati? Come hai fatto?
Grazie
Rino

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.