11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

purtroppo non andava bene

Ho preparato una demo funzionante, vediamo se questa ti aiuta.
https://dotnetfiddle.net/KAAOlO

Nella demo, prima elimino l'occorrenza e poi rinumero quelle rimanenti.

il mio problema sta se cancello una che non sia l'ultima o se addirittura cancello proprio la prima
devo rinominare tutto

Beh, non è un problema. Prima elimini, poi rinumeri le restanti.
Ho l'impressione che tu stia provando a rinumerare prima di aver effettivamente rimosso le occorrenze.

Per la rimozione/aggiunta delle domande il problema non si pone perché la numerazione - da quanto ho capito - riguarda solo le occorrenze.
Il fatto che la proprietà "Occurrence" si trovi sulla domanda potrebbe essere un errore di modellazione. Nella demo infatti ho la proprietà "Numero" sull'oggetto "Occorrenza", che fa da contenitore per le domande, e non sulle domande stesse.

ciao,
Moreno

P.S.

certo é che io avrò rifatto 5 volte le funzione di controllo e sempre qualcosa non va bene a secondo di quello che cancello :(

Questo si poteva evitare usando il test driven development e/o spezzando il problema nelle sue parti elementari.
Ad esempio, questa funzionalità di editing avresti potuto implementarla con una task-based UI: se l'utente clicca il bottoncino "Elimina" per rimuovere l'occorrenza, tu fai una richiesta ajax per rimuovere quella e rinumerare le restanti. Poi l'utente aggiunge una domanda: fai un'altra richiesta ajax per aggiungerla al database. E così via: ogni operazione compiuta dall'utente che modifica il questionario corrisponde ad una singola richiesta ajax.

Comunque, rifarlo 5 volte può capitare a chi è costretto ad imparare da solo. Anch'io ho avuto momenti così. Avere un mentore che ti guida attraverso la formazione è un privilegio di pochi.
Modificato da BrightSoul il 27 agosto 2018 22.38 -

Enjoy learning and just keep making
252 messaggi dal 03 dicembre 2001
www.fuossbook.it
BrightSoul ha scritto:
Ciao,

purtroppo non andava bene

Ho preparato una demo funzionante, vediamo se questa ti aiuta.
https://dotnetfiddle.net/KAAOlO

Nella demo, prima elimino l'occorrenza e poi rinumero quelle rimanenti.

il mio problema sta se cancello una che non sia l'ultima o se addirittura cancello proprio la prima
devo rinominare tutto

Beh, non è un problema. Prima elimini, poi rinumeri le restanti.
Ho l'impressione che tu stia provando a rinumerare prima di aver effettivamente rimosso le occorrenze.

Per la rimozione/aggiunta delle domande il problema non si pone perché la numerazione - da quanto ho capito - riguarda solo le occorrenze.
Il fatto che la proprietà "Occurrence" si trovi sulla domanda potrebbe essere un errore di modellazione. Nella demo infatti ho la proprietà "Numero" sull'oggetto "Occorrenza", che fa da contenitore per le domande, e non sulle domande stesse.

ciao,
Moreno

P.S.

certo é che io avrò rifatto 5 volte le funzione di controllo e sempre qualcosa non va bene a secondo di quello che cancello :(

Questo si poteva evitare usando il test driven development e/o spezzando il problema nelle sue parti elementari.
Ad esempio, questa funzionalità di editing avresti potuto implementarla con una task-based UI: se l'utente clicca il bottoncino "Elimina" per rimuovere l'occorrenza, tu fai una richiesta ajax per rimuovere quella e rinumerare le restanti. Poi l'utente aggiunge una domanda: fai un'altra richiesta ajax per aggiungerla al database. E così via: ogni operazione compiuta dall'utente che modifica il questionario corrisponde ad una singola richiesta ajax.

Comunque, rifarlo 5 volte può capitare a chi è costretto ad imparare da solo. Anch'io ho avuto momenti così. Avere un mentore che ti guida attraverso la formazione è un privilegio di pochi.
Modificato da BrightSoul il 27 agosto 2018 22.38 -




Ciao Moreno
intanto grazie mille per il supporto, il tuo script é stato molto istruttivo e mi ha illuminato.
In effetti io faccio una richiesta via ajax per ricreare le domande ma per cancellarle non faccio altro che mettere un valore Hidden (Cancella) a true in modo che quando faccio il post non vado a considerare le domande con questo valore a true, questo perchè durante il salvataggio C# vuole la continuità degli id delle domande [per ignoranza non so perchè)


Alla fine il codice che ho fatto stamattina è stato molto semplice,
non ho utilizzato il tuo perchè dovevo cambiare molte cose di quello che già avevo , ma sicuramente lo utilizzerò per altre cose che faro da capo

In pratica ho creato un contatore unico, e quindi senza a darmi a verificare le occorrenze cancellate o no, la successione e altro vado direttamente a enumerare tutto nuovamente....in uno dei primi tentativi avevo fatto una cosa simile ma funzionava male....la stanchezza per quello fatto in precedenza non mi ah aiutato




 foreach (var sec in NewModel.Sections)
            {
                bool prima = false;
                int old = -1;
                int contOcc = 0;
                int occAttuale = 0;

                foreach (var quest in sec.Questions)
                {

                    

                    if (old == -1)
                    {
                        old = 0;
                    }
                    else
                    {

                        old = occAttuale ;
                       
                       
                    }

                    occAttuale = quest.Occurance;
                   


                    if (old != occAttuale )
                    { 

                        if (prima == false && occAttuale > 0)
                        {
                            old = occAttuale ;
                            contOcc = 0;
                        }
                        else
                        {
                           
                            contOcc++;
                        }
                           
                    }

                    prima = true;

                    quest.Occurance = contOcc;
                }
            }



Spero che sia chiaro cosa ho fatto
Io l'ho testato diverse volte e nella sua semplicità rispetto a quello fatto prima da me ...funziona
Grazie mille ancora

***************************
webmaster di:
hydrasail.blogspot.it
fuossbook.it
***************************

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.