Domanda

Sto usando Framework 2.0 e non capisco come funzionano i datagrid e i set di dati dopo aver fatto un postback. In msdn dice che non è necessario eseguire nuovamente un databind se la richiesta è un postback. Ma la mia domanda è: come il datagrid mostra di nuovo i record se non c'è un database? Suppongo che asp.net salvi in ??una cache i risultati della query, ma non ne sono sicuro. Per favore, dimmi qual è il meccanismo che .NET utilizza per realizzarlo.

Ho un risultato di query di grandi dimensioni (centinaia), impaginato ogni 50 record e voglio evitare di fare la stessa query ogni volta che l'utente seleziona i successivi 50 record.

Grazie in anticipo.

È stato utile?

Soluzione

ASP.NET salva i tuoi valori precedenti in ViewState, quindi non si perdono tra i postback.

Ma nel tuo caso stai parlando di impaginazione, i nuovi record. Se li stai recuperando alla prima richiesta, forse puoi memorizzarli nel viewstate ma non è una buona idea. La tua pagina verrà pubblicata molto lentamente se hai molti record.

Se i tuoi clienti ottengono sempre gli stessi dati e le modifiche ai dati correnti non sono importanti durante la visualizzazione dei dati, forse puoi memorizzarli nella cache con meccanismo di memorizzazione nella cache di asp.net .

Altri suggerimenti

La risposta a questo è il viewstate. L'intera griglia visualizzata è memorizzata nel viewstate ed è questa che persiste nei postback.

Cioè la griglia è definita al caricamento della pagina iniziale e memorizzata nel viewstate. Quando l'utente fa clic su un collegamento / pulsante per postback il modulo, il viewstate viene quindi decodificato ed è nuovamente disponibile per l'uso. Pertanto non è necessario ricollegare la griglia. Tuttavia ha detto che ci sono alcuni avvertimenti di cui essere consapevoli.

Viewstate è la parola magica: P

ASP.NET WebForms riguarda ViewState .

Il concetto è fondamentalmente che ASP.NET sta memorizzando le informazioni in un elemento di input nascosto sulla tua pagina e quindi recuperandolo automaticamente sul lato server usando postback, che invia il modulo (racchiuso in tutto il tuo sito) al server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top