lo so che è normale che il datagrid, non mantenendo più nessuna informazione in quanto il viewstate è disabilitato, non sappia più in quale pagina si trova e tutta un altra serie di informazioni.
Quando il viewstate è disabilitato devo essere io a memorizzare queste info, se mi sposto di pagina il valore della pagina corrente lo devo memorizzare in session e quando faccio il post back devo prendere il valore dalla session e impostare la relativa proprietà al datagrid.
Perfetto mi sta bene cosi, preferisco avere un int in session piuttosto che un viewstate enorme.
A questo punto non è più strano il comportamento che ho segnalato, se vuoi ti passo lo zip con il codice cosi puoi renderti conto:
se metti in debug e fai due test ti accorgi che
il valore di e.NewPageIndex dell'oggetto DataGridPageChangedEventArgs nell'evento PageIndexChanged
è sempre uguale all'effettiva pagina nel caso di viewstate abilitato, mentre in caso contrario rappresenta il numero della pagina nel gruppo visualizzato, ossia se nel pager sono visualizzate le pagine dalla 11 alla 20 e io clicco su 13 il valore di e.NewPageIndex è uguale a 3 perchè è la terza pagina. Ciò che non viene memorizzato internamente dal datagrid è il gruppo di pagine visualizzate.
Il tutto si risolve come detto mettendo il valore di e.newpageindex in session e ogni volta che si fa un postback si imposta la proprietà CurrentPageIndex. Il datagrid si basa su questa proprietà per stabilire il valore di e.NewPageIndex.
nostromo ha scritto:
lo sai la cosa strana, ho disattivato più volte il viewstate, e a me la paginazione non funzionava propio, come è gisuto che sia visto che il viewstate viene utilizzato per conservare il numero di pagina corrente ed altre cosette, che ti smetta di funzionare dopo 10 pagine è stranissimo
ciao marco