Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

Îåêßíçóå áðü ôï ìÝëïò bonset. Τελευταία δημοσίευση από το μέλος bonset στις 17-03-2006, 00:35. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-03-2006, 14:53 10605

    τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Γειά σε όλους,

    για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh σε ένα details view που διαβάζει από ένα grid view έκανα το εξής:

    protected void DetailsView1_ItemDeleted(object sender, DetailsViewDeletedEventArgs e)
    {
    GridView1.DataBind(); // αυτό εάν κατάλαβα δείχνει την αλλαγή στη λίστα
    Response.Redirect(
    "blabla.aspx"); // αυτό κόβει τις πολλαπλές εισαγωγές
    }
    όμως με αυτόν τον τρόπο έχω τα ακόλουθα προβλήματα:

    1. στην περίπτωση που το grid view έχει paging... τότε δεν με πηγαίνει στη σελίδα που ήμουν
    2. και κυριώτερο έχει καρφωτό το URL βλ. blabla.aspx.

    Για το δεύτερο βρήκα κάτι μου έχει να κάνει με string parsing για ακόμη μία φορά (currentPageStr = Request.Url.AbsoluteUri;) άμα έχετε καμιά άλλη ιδέα... Φαντάζομαι ότι και για το 1ο πρόβλημα θα υπάρχει λύση... ωστόσο...

    Μήπως για το αρχικό πρόβλημα έχετε να μου προτείνετε καμιά πιο καλή λύση;

    Ευχαριστώ

     

  •  13-03-2006, 16:40 10606 σε απάντηση της 10605

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    ok...



    το παραπάνω είναι:

    protected void DetailsView1_ItemInserted

  •  13-03-2006, 17:16 10608 σε απάντηση της 10605

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Ενδιαφέρον ερώτημα. Θα ήθελα να ακούσω μια διαφορετική απάντηση από τη χρήση του Session object.
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  14-03-2006, 09:32 10620 σε απάντηση της 10608

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Πως το κατάφερες αυτό; (σχεδόν ρητορική ερώτηση)...



    Αν χρησιμοποιείς σωστά τους event handlers δεν νομίζω ότι ένα browser refresh θα επαναλάβει το τελευταίο postback event. Τι controls χρησιμοπιειείς για το submit;



    Σίγουρα κάτι δεν κάνεις καλά και για να πάρεις απάντηση θα πρέπει να μας δώσεις το aspx/ascx και το cs file σου για να δούμε τι έχεις κάνει.



    Αν κρίνω πάντως από το code sinpet που έχεις στο post σου κάτι δεν έχεις καταλάβει καλά. Π.χ. το DataBind πριν το Redirect το το χρειάζεσαι;





    anyway... post more code

    rousso






    rousso
  •  14-03-2006, 11:44 10627 σε απάντηση της 10605

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Καλημέρα και πάλι

    Καταρχήν σας ευχαριστώ για την απόκριση. Κατά δεύτερον...να είστε σίγουροι ότι πολλά είναι αυτά που δεν έχω καταλάβει.... τι να κάνω όμως το παλεύω...

    Προφανώς rousso έχεις δίκιο σχετικά με το DataBind πριν από το Redirect. Αφού έχω το Redirect δεν το θέλω το DataBind πια.

    Απλά η όλη ιστορία ξεκίνησε όταν με την εισαγωγή ενός στοιχείου σε ένα detail view ήθελα ενημερώνεται και το "συνδεδεμένο" grid view. Δεν υπάρχει submit κουμπί, όλα γίνονται από το control.

    Την ενημέρωση του gridview (με τα πολλά) την κατάφερα με το DataBind().

    Μετά όμως... πάτησα το refresh του browser και τότε... το τελευταίο entry ξανα-έμπαινε στη βάση... όσες φορές πατούσα το refresh τόσες φορές έμπαινε...

    Οπότε μου προέκυψε το Redirect.... για να "κόψω" τις πολλαπλές εισαγωγές. Το "masterpiece" είναι το ακόλουθο:

    public partial class itemsTypes_new : System.Web.UI.Page
    {

    protected void Page_Load(object sender, EventArgs e)

    {



    }

    protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)

    {

    // GridView1.DataBind();

    Response.Redirect("blabla.aspx");

    }

    protected void DetailsView1_ItemDeleted(object sender, DetailsViewDeletedEventArgs e)

    {

    //GridView1.DataBind();

    Response.Redirect("blabla.aspx");



    }

    protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)

    {

    //GridView1.DataBind();

    Response.Redirect("blabla.aspx");

    }

    }



    Ομολογώ ότι πρέπει να διαβάσω περί Session Object και postback/callback events ... τα video είναι καλά... άλλα το όλο θέμα είναι δύσκολο... όταν ξεκινάς... (φαντάζομαι και στη συνέχεια;)

    εάν μπορείτε να μου δώσετε ένα παράδειγμα χρήσης του Session Object στη συγκριμένη περίπτωση θα με βοηθήσετε πολύ.


    Σας ευχαριστώ και πάλι για το χρόνο σας.




  •  14-03-2006, 14:38 10634 σε απάντηση της 10627

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Το aspx στείλε μας....



    Οι ItemInsterted, ItemDeleted κλπ τρέχουν αφού γίνει το insert, delete κλπ.



    Το πρόβλημά σου είναι ότι το databinding δεν πρέπει να το κάνεις εκεί αλλά στον handler που τρέχει για να κάνει το insert, delete κλπ...



    O handler αυτός θα τρέξει ως αποτέλεμσα κάποιου user action (π,χ, κλικ σε ένα button). Δεν καταλαβαίνω όμως τι κάνεις χωρις να δω τουλάχιστον το aspx.



    Για στείλε το....

    rousso
    rousso
  •  14-03-2006, 15:43 10638 σε απάντηση της 10634

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Συνημμένα: acqTypes.zip

    ok... το στέλνω... ντρέπομαι ολίγον... είναι τελείως γελοίο αυτό που κάνει...

    ελπίζω να γίνει η προσθήκη του συμημμένου....

     

  •  16-03-2006, 15:12 10714 σε απάντηση της 10605

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    παιδιά με ξεχάσατε;

    ένα παραδειγματάκι για το Session object;

    ή κανά άλλον τρόπο για να γλυτώσω από το parsing...

    ή μήπως δεν γλυτώνεις ποτέ από αυτό...



    (sorry, με πιάσαν τα φιλοσοφικά μου... τι το θέλω γριά γυναίκα το .NET... )



  •  16-03-2006, 17:47 10722 σε απάντηση της 10605

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Θα μπορούσες όταν γίνεται η αποθήκευση, να καταχωρείς μια τιμή (flag) στο Session.



    Όταν πας να αποθηκεύσεις τη σελίδα, θα ελέγχεις αν το flag αυτό είναι ενεργοποιημένο. Αν ναι, τότε ακυρώνεις την αποθήκευση.



    Όμως, πότε θα σβήνεται αυτό το flag? Όταν φορτώνεις τη σελίδα, ελέγχεις αν αυτή είναι αποτέλεσμα PostBack (ή το Viewstate έχει τιμές). Αν είναι άδειο, τότε πρόκειται για νέα επίσκεψη στη σελίδα, οπότε και καθαρίζεις το συγκεκριμένο flag στο Session.
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  17-03-2006, 00:35 10748 σε απάντηση της 10722

    Απ: τρόποι για να "κόψω" τις πολλαπλές εισαγωγές με διαδοχικά browser refresh

    Σε ευχαριστώ πολύ:)
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems