29 messaggi dal 07 settembre 2006
Ciao,

ho un problemino, nememno molto grave ma vorrei capire se c'è un modo per sistemarlo.

Allora ho una GridView collegata ad un ObjectDataSource e fin qui tutto ok...
...ho aggiunto un div con alcuni campi (textbox e ddl) per filtrare il contenuto, attraverso la proprietà FilterExpression e FilterParameters dell'ODS... e fin qui funziona tutto alla grande...

...ma c'è un problemino... se filtro la lista... e poi vado a modificare una riga... non mi fa modificare la riga che voglio io ma in realtà prende quella che era in quella posizione nella lista completa (non filtrata per capirci)...

...grazie in anticipo

Z
29 messaggi dal 07 settembre 2006
Al momento no... più tardi in caso... ma non saprei proprio che parte del codice postare (dovrei postare tutta la pagina)...

...cmq a parte questo provo a spiegare quello che ho fatto:

GridView + ObjectDataSource (collegata ad un file DataSet in cui sono presenti i vari TableAdapter e le varie Query) = tutto ok funziona tutto perfettamente

...aggiunta di una TextBox (con relativo bottone "Cerca") e di una DropDownList... i cui valori andranno ad essere i parametri del filtro.

...avrei potuto fare una nuova query con i parametri in modo che venissero recuperati solo i dati da visualizzare in base ai filtri... ma non sapendo come cambiare a runtime la query che andrà ad utilizzare l'ObjectDataSource (probabilmente, se non sicuramente questa sarebbe la soluzione al piccolo problemino che si verifica ora)...

...invece per comodità... ho semplicemente settato il parametro Filter Expression e ho aggiunto i due FilterParameters legati alla TextBox e alla DDL... in questo modo è molto piu semplice e si evitano problemi di code injection (o per lo meno cosi ho letto) ma vabbè al di là di questo, probabilmente è normale che mi si verichi il problema perchè in realtà l'ODS carica tutti i dati e poi ne fa vedere solo alcuni in base al filtro... però allo stesso tempo mi sembra strano che se clicco su modifica di una riga filtrata in realtà mi faccia modificare sì quella riga ma la prende dalla lista non filtrata che ha in memoria e quindi in pratica è come se modificassi una riga sbagliata...

...esempio:
LISTA NON FILTRATA:

    NOME    COGNOME    ETA'
1   Mario     Rossi     10
2   Andrea    Bianchi   25
3   Paolo     Verdi     13
4   Luca      Verdi     25

...filtro per esempio per Cognome = "Verdi"
LISTA FILTRATA:

    NOME    COGNOME    ETA'
1   Paolo     Verdi     13
2   Luca      Verdi     25

...ora vado a modificare il secondo cioè "Luca Verdi"... ecco è qui che si verifica il problema perchè invece che modificare Luca Verdi nel template di modifica mi compare Andrea Bianchi... e cioè sì il secondo ma della lista non filtrata.

Penso sia un bug... per risolvere come ho detto prima credo dovrei impostare il filtro direttamente nella query... però questo dovrei farlo a runtime...

Grazie ancora

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.