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

 

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

"Please wait" βοήθεια!!!!!

Îåêßíçóå áðü ôï ìÝëïò xakou. Τελευταία δημοσίευση από το μέλος darklynx στις 16-07-2009, 14:48. Υπάρχουν 13 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  10-07-2009, 03:00 52341

    "Please wait" βοήθεια!!!!!

    Λοιπόν στο site μου και μέσα από Formview ενημερώνω ένα πίνακα και κάνω upload κάποιες εικόνες.

    Επειδή οι εικόνες απαιτούν κάποια δευτερόλεπτα για να γίνουν upload θέλω να βάλω ένα please wait για να περιμένει ο χρήστης.

    Διάβασα εδώ http://www.4guysfromrolla.com/articles/121708-1.aspx αλλά δεν τα κατάφερα....

    Ο κώδικας μου είναι κάπως έτσι:

    <%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="changeADad.aspx.vb" Inherits="changeADad" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
        </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

                    <ContentTemplate>
                <asp:FormView ID="FormView1" runat="server" DataKeyNames="id"
            DataSourceID="SqlDataSource1" DefaultMode="Edit">
                    <EditItemTemplate>
                        <table>
                            <tr>
                                <td style="background-color: #FF6600; font-size: x-large;">

    .....................

    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
                                CommandName="Update" Text=" update" BackColor="#FF9900"
                                Font-Bold="True" Font-Size="Large" Font-Underline="False" onclick="skm_LockScreen('We are processing your request...');"  />

    .................... end

     

    Τις παρακάτω γραμμές που πρέπει να τις βάλω;;;;;

       <style type="text/css">
          .LockOff {
             display: none;
             visibility: hidden;
          }

          .LockOn {
             display: block;
             visibility: visible;
             position: absolute;
             z-index: 999;
             top: 0px;
             left: 0px;
             width: 105%;
             height: 105%;
             background-color: #ccc;
             text-align: center;
             padding-top: 20%;
             filter: alpha(opacity=75);
             opacity: 0.75;
          }
       </style>

       <script type="text/javascript">
           function skm_LockScreen(str) {
               var lock = document.getElementById('skm_LockPane');
               if (lock)
                   lock.className = 'LockOn';

               lock.innerHTML = str;
           }
       </script>

     

    Παρακαλώ για τη βοήθεια σας γιατί έχω κολλήσει πραγματικά.....

     

  •  10-07-2009, 09:44 52342 σε απάντηση της 52341

    Απ: "Please wait" βοήθεια!!!!!

    Σου λείπει ένα <div> στην html το οποίο είναι αυτό που εμφανίζεται στο button click. Όσο για τις γραμμές με το css και τη javascript μπορούν να μπουν στο <head>.

       <p> 
          <input type="submit" value="Click Me!" onclick="skm_LockScreen('We are processing your request...');" /> 
       </p> 
    
       <div id="skm_LockPane" class="LockOff"></div>


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  10-07-2009, 09:59 52343 σε απάντηση της 52342

    Απ: "Please wait" βοήθεια!!!!!

    tasos:

    Σου λείπει ένα <div> στην html το οποίο είναι αυτό που εμφανίζεται στο button click. Όσο για τις γραμμές με το css και τη javascript μπορούν να μπουν στο <head>.

       <p> 
          <input type="submit" value="Click Me!" onclick="skm_LockScreen('We are processing your request...');" /> 
       </p> 
    
       <div id="skm_LockPane" class="LockOff"></div>

     

    Τάσο χρησιμοποιώ masterpage, στον παραπάνω κώδικα είναι η child της masterpage. Αρα αυτά που έγραψε που το βάζω;

     

  •  10-07-2009, 10:26 52344 σε απάντηση της 52343

    Απ: "Please wait" βοήθεια!!!!!

    Η σελίδα που μας έδειξες έχει ένα πλήρες παράδειγμα προς download στο τέλος της.Το κοίταξες αυτό;

    Επίσης πληροφοριακά,το Ajax Control Toolkit  έχει ένα έτοιμο control extender,το ModalPopup που κάνει το ίδιο πράγμα.

  •  10-07-2009, 10:35 52345 σε απάντηση της 52343

    Απ: "Please wait" βοήθεια!!!!!

    Και κάτι ακόμα....

     

    Πως θα καταλάβει ότι οι εικόνες έχουν γίνει upload για να ξεκλειδώσει το desktop;   

  •  10-07-2009, 14:14 52351 σε απάντηση της 52345

    Απ: "Please wait" βοήθεια!!!!!

    Αφού λοιπόν δεν έχεις υλοποιήσει διαδικασία για αναμονή,ας σου δείξω ένα παράδειγμα για το πώς θα το κάνεις:

    Παρακάτω είναι τα περιεχόμενα μιας υποθετικής φόρμας με ένα file upload control και ένα link button που κάνει upload στον server.Όλα αυτά τα έχω σε ένα update panel μια που θα χρειαστούμε ajax για την διαδικασία.Στο ίδιο σημείο θα είχες και τον πίνακα που θα στεγάσει και τις φωτογραφίες:

        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <br />
                    <asp:FileUpload ID="FileUpload1" runat="server" />                
                    <br />
             <asp:LinkButton ID="LinkButton1" runat="server">Upload to server</asp:LinkButton>
             
             <br />
                </ContentTemplate>
            </asp:UpdatePanel> 
     
     
    Από κάτω πρόσθεσε ένα update progress control,που θα εμφανίζεται την ώρα που θα "ανεβάζεις" τις εικόνες.Αν αναρωτιέσαι,την εικόνα την πήρα 
    από το Visual Studio Image Library.
     

     

    <asp:UpdateProgress ID="UpdateProgress1" runat="server">
    <ProgressTemplate>
    <asp:Image ID="Image1" runat="server" ImageUrl="UPload_00.gif" /> <br />
     Please wait,uploading images... 
    </ProgressTemplate>
    </asp:UpdateProgress>

     

    Για λόγους απλότητας το παράδειγμα χρησιμοποιεί την sleep για να προσομοιώσει την χρονοβόρα εργασία,

    εσύ απλά θα βάλεις τον κώδικα σου κανονικά στο codebehind:

     

    Protected Sub LinkButton1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton1.Click System.Threading.Thread.Sleep(5000) End Sub

     

    Εύκολο και αρκετά λειτουργικό.

  •  10-07-2009, 16:18 52370 σε απάντηση της 52343

    Απ: "Please wait" βοήθεια!!!!!

    Αν και νομίζω ότι πήρες απάντηση από τον darklynx, 

    xakou:
     

    Τάσο χρησιμοποιώ masterpage, στον παραπάνω κώδικα είναι η child της masterpage. Αρα αυτά που έγραψε που το βάζω;

     

    Δε νομίζω ότι η master δημιουργεί κάποιο θέμα. Μπορείς να τα έχεις όλα στη child σελίδα σου. Την html την τοποθετείς στον asp:Content που θέλεις να υπάρχει το κουμπί και το css και το script μπορούν είτε να μπουν στην master σελίδα είτε να τα τοποθετήσεις στον asp:Content με ContentPlaceHolderID="head". 

    xakou:

    Πως θα καταλάβει ότι οι εικόνες έχουν γίνει upload για να ξεκλειδώσει το desktop;   

    Όταν η σελίδα θα αρχίσει να ξαναφορτώνει στον browser το modal θα χαθεί από μόνο του. Η σελίδα θα φορτώσει όταν ολοκληρωθεί το upload του αρχείου. 


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  15-07-2009, 14:29 52495 σε απάντηση της 52370

    Απ: "Please wait" βοήθεια!!!!!

    Λοιπόν, δείτε τον κώδικα μου σύμφωνα με το παραπάνω παράδειγμα.

     

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

    <title></title>

    </head>

    <body>

    <form id="form1" runat="server">

    <asp:ScriptManager ID="ScriptManager1" runat="server">

    </asp:ScriptManager>

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">

    <ContentTemplate>

    <br />

    <asp:FileUpload ID="FileUpload1" runat="server" />

    <br />

    <asp:LinkButton ID="LinkButton1" runat="server">Upload to server</asp:LinkButton>

    <br />

    </ContentTemplate>

    </asp:UpdatePanel>

    <asp:UpdateProgress ID="UpdateProgress1" runat="server">

    <ProgressTemplate>

    <asp:Image ID="Image1" runat="server" ImageUrl="UPload_00.gif" /> <br />

    Please wait,uploading images...

    </ProgressTemplate>

    </asp:UpdateProgress>

    </form>

    </body>

    </html>

     

     

     

    Partial Class _Default

    Inherits System.Web.UI.Page

    Protected Sub LinkButton1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton1.Click

    System.Threading.Thread.Sleep(5000)

    If FileUpload1.HasFile Then

    Response.Write("Yes i have file")

    Else

    Response.Write("No file!!!")

    End If

    End Sub

    End Class

     

     

     

    Σας δουλεύει;

     

  •  15-07-2009, 15:20 52503 σε απάντηση της 52495

    Απ: "Please wait" βοήθεια!!!!!

    Σου λείπει στο updateprogress το AssociatedUpdatePanelID="UpdatePanel1". Εδώ ορίζεις ότι όταν κάνει update το UpdatePanel1 θα εμφανίζεται το συγκεκριμένο updateprogress. 

    Επίσης η response.write(...) θα χτυπήσει αλλά όταν θα γίνει αυτό θα ξέρεις ότι όλα τα άλλα είναι σωστάStick out tongue


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  15-07-2009, 19:10 52513 σε απάντηση της 52503

    Απ: "Please wait" βοήθεια!!!!!

    H response.write(...) γιατί χτυπάει;;;;

     

  •  16-07-2009, 10:12 52526 σε απάντηση της 52513

    Απ: "Please wait" βοήθεια!!!!!

    xakou:

    H response.write(...) γιατί χτυπάει;;;;

    Δεν είμαι σίγουρος γιατί, όταν το δοκίμασα μου έβγαλε μήνυμα. Smile

    Υποθέτω επειδή δεν στέλνεται όλη η σελίδα, αλλά ένα μέρος της και δεν μπορείς να κάνεις response.write. Έτσι κι αλλιώς ότι κώδικα κ να γράψεις θα δεις μόνο τις αλλαγές που αφορούν το update panel σου. Αν έχεις δηλαδή δύο label, το ένα εντός, κ το άλλο εκτός του updatepanel και τους αλλάξεις το text θα δεις να αλλάζει μόνο αυτό που βρίσκεται εντός.


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  16-07-2009, 11:30 52531 σε απάντηση της 52526

    Απ: "Please wait" βοήθεια!!!!!

    Τελικά μετά από λίγο Googling είδα πως UpdatePanel + UpdateProgress + FileUpload.hasFile ΔΕΝ παίζουν ΟΛΑ μαζί!

    Σαν λύση χρησιμοποίησα το jquery για να έχω το Please Wait όταν κάνω upload αρχεία.

     

    Πάντως σας ευχαριστώ όλους για την βοήθεια.

  •  16-07-2009, 13:11 52539 σε απάντηση της 52531

    Απ: "Please wait" βοήθεια!!!!!

    Μπορείς να μας δείξεις την πηγή αυτής της πληροφορίας;Στο παράδειγμα που σου έδειξα έχει και UpdatePanel και UpdateProgress και FileUpload και παίξαν όλα μαζί.Stick out tongue

  •  16-07-2009, 14:48 52548 σε απάντηση της 52513

    Απ: "Please wait" βοήθεια!!!!!

    xakou:

    H response.write(...) γιατί χτυπάει;;;;

     

    Response.Write και Ajax δεν τα πάνε καλά μεταξύ τους,μην την χρησιμοποιείς σχεδόν ποτέ όταν έχεις Ajax στη σελίδα σου.

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