Postback Happening μετά την λήψη, όταν κάνετε κλικ σε ένα κουμπί ή μια σύνδεση

ψήφοι
0

Αυτό είναι ένα πρόβλημα που είχα στο παρελθόν, αλλά ξέχασα, αν μπορώ να λυθεί είτε όχι ποτέ. Το έχω έτσι ώστε όταν ο χρήστης κάνει κλικ σε μια asp: linkbutton δίνει το έναυσμα για μια λήψη ενός αρχείου. λήψεις αρχείων με επιτυχία χωρίς πρόβλημα. Ωστόσο, μετά τη λήψη, εάν ο χρήστης κάνει κλικ για να κατεβάσετε και πάλι ή να κάνει κλικ σε ένα κουμπί ένα postback συμβαίνει και η σελίδα ανανεώνεται, ανοίγοντας τα πάντα, όπως πίνακες ή κείμενο. Πώς μπορώ να αποτρέψει ένα τέτοιο ενδεχόμενο;

Εδώ είναι ο κώδικας εκτέλεσης για τη λήψη.

string name = Path.GetFileName(filePath);
Response.Clear();
Response.AddHeader(content-disposition, attachment; filename=\ + name + \);
Response.ContentType = mimeType;
Response.BinaryWrite(file);
Response.End();

ΣΗΜΕΙΩΣΕΙΣ:

  • Ο έλεγχος linkbutton δεν δημιουργείται πίσω από τις σκηνές στον κώδικα, αν αυτό κάνει τη διαφορά.
  • Το αρχείο δεν κατεβάσετε όταν κάνετε κλικ στο σύνδεσμο για δεύτερη φορά. Μόνο μια ανανέωση συμβαίνει.
  • Αυτό είναι μέρος μιας μονάδας DNN
Δημοσιεύθηκε 13/02/2014 στις 15:42
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

Πρώτα θα πρέπει να αποθηκεύσετε τις πληροφορίες που θέλετε να κρατήσετε πριν συμβεί ξανά η θέση. Ένας από τους τρόπους αυτό μπορεί να γίνει είναι με τη χρήση συνεδρία. Για παράδειγμα, αν θέλετε να αποθηκεύσετε την τιμή του πλαισίου κειμένου θα μπορούσαμε να πούμε:

Session["TextBox1"] = TextBox1.Text;

Στη συνέχεια θα πρέπει να χειριστεί τη θέση πίσω σε λειτουργία φόρτωσης της σελίδας σας.

private void Page_Load()
{
   //check if this is a post back
   if(this.IsPostBack)
    {
       //restore your values
       TextBox1.Text = (string)Session["TextBox1"];
    }
}
Απαντήθηκε 13/02/2014 στις 16:32
πηγή χρήστη

ψήφοι
0

Εντάξει, ξέρω την πηγή του προβλήματος, αλλά ποτέ δεν βρήκε μια λύση για αυτό. Ο λόγος για αυτό δείχνει ακόμη και μέχρι οφείλεται στο γεγονός ότι μια ρύθμιση στο DotNetNuke. Στην περιοχή Ρυθμίσεις υποδοχής στην καρτέλα Ρυθμίσεις για προχωρημένους, αν κοιτάξετε Ρυθμίσεις Performance υπάρχει μια ρύθμιση που ονομάζεται Page μέλος Εμμονή . Αν ορίσετε αυτό να Μνήμη όπως έκανα και αυτό θα προκαλέσει προβλήματα AJAX. Είναι ακόμη σημειώνεται στην περιγραφή. Ρύθμιση πίσω στο Σελίδα κάνει το πρόβλημα εξαφανίζεται.

Αιτιολογία έχω διατηρηθεί η μνήμη είναι γιατί το site της εταιρείας μου χρησιμοποιούσε μνήμης, χωρίς όμως να γνωρίζει μου άλλαξε πίσω στην σελίδα. Τώρα είναι ένα μη θέμα, αλλά αν κάποιος βρει μια λύση για όταν έχει ρυθμιστεί σε Memory επιτρέψτε μου να ξέρω! Σε αντίθετη περίπτωση, θα πρότεινα κατά τη χρήση του, εκτός αν ορίστηκε σε νεότερες εκδόσεις του DNN.

Απαντήθηκε 14/02/2014 στις 13:22
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more