54 messaggi dal 13 settembre 2010
Se imposto EnableViewState="false" ad ogni postback la gridview si svuota del tutto e non compare nemmeno un record...
11.886 messaggi dal 09 febbraio 2002
Contributi
gdalbell ha scritto:
Se imposto EnableViewState="false" ad ogni postback la gridview si svuota del tutto

ok, disabilitare il viewstate potrebbe aver portato a galla il problema.
Lascialo disabilitato e, come ti dicevo, usa il debugger per assicurarti che il SelectCommand venga impostato correttamente.

Se dopo il postback la GridView non visualizza più alcun elemento, i casi sono due:
  • o il SelectCommand non produce alcun risultato
  • o il DataBinding non avviene, perché ad esempio il SelectCommand resta vuoto.


Se vuoi posta il codice sia della pagina aspx che del suo codefile, così posso provare a riprodurre il problema.

ciao

Enjoy learning and just keep making
54 messaggi dal 13 settembre 2010
Ok ci sono... quasi...
allora ho disabilitato il viewstate dalla gridview e dal sqldatasource, ho messo dei breakpoint dove mi hai suggerito e modificando il codice così
Sub Page_InitComplete(objSender As Object, objArgs As EventArgs)
if Page.IsPostBack then
carica()
end if
End Sub

ora funziona.

C'è solo un però:
quando clicco sull'header di una colonna per ordinare i record in base al campo cliccato la griglia si ordina correttamente, poi seleziono alcuni checkbox e chiamo la funzione confronta -> a questo punto lui confronta i rercord corretti (recuperando il rowindex giusto) però dopo aver fatto questo la gridview fa di nuovo il bind e quindi perde l'ordinamento che avevp fatto prima...

Credo sia normale perchè l'ordinamento genera postback e quindi mi va a chiamare l'initcomplete che a sua volta fa il rebind della gridview senza tener conto dell'ordinamento che avevo precedentemente fatto...

La cosa strana è che i checkbox mi restano flaggati...in teoria nel postback dovrebbero

Secondo te posso ovviare a questa cosa senza scatenare altri side effects?

Come sempre grazie!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

gdalbell ha scritto:

Credo sia normale perchè l'ordinamento genera postback e quindi mi va a chiamare l'initcomplete che a sua volta fa il rebind della gridview senza tener conto dell'ordinamento che avevo precedentemente fatto...

Sì, anche se l'informazione su quale sia la colonna di ordinamento non è andata persa. Infatti, anche se hai disabilitato il ViewState, la GridView persiste comunque il nome della colonna nel Control State, che non è disattivabile.
E' solo che, come al solito, siamo nell'InitComplete e il Control State non è ancora stato ripristinato. Quando effettui il DataBind, infatti, la proprietà distinteSource.SortExpression la troverai vuota e perciò non verrà applicato nessun ordinamento.

gdalbell ha scritto:

Secondo te posso ovviare a questa cosa senza scatenare altri side effects?

Prova a rimuovere distinteGrid.DataBind, vedi che effetto fa.
Infatti già il settare il SelectCommand causerà l'estrazione dei record dal database.

gdalbell ha scritto:

Come sempre grazie!

Prego :)

Enjoy learning and just keep making
54 messaggi dal 13 settembre 2010
Ciao BrightSoul,
tu che sei un genio, mi chiedevo se potevi dare un occhio a questo mio messaggio...grazie!

http://forum.aspitalia.com/forum/post/394346/Dropdownlist-Multiple-Detailsview.aspx#394346
11.886 messaggi dal 09 febbraio 2002
Contributi
hehe ^^' Va bene, vediamo se ti so aiutare :)

Enjoy learning and just keep making

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.