Update-Panel-Animation nicht angezeigt

Ich kann nicht scheinen, um Holen Sie sich ein update-panel mit einer animierten GIF-Datei zu pop-up, wenn Sie die folgenden einfachen "Rezept" in einem populären blog.

Verwenden wir ASP.NET 3.5 mit VB codebehind-Seiten, (a little bit of AJAX bestreut, aber nichts Komplexes). Die Benutzer sind mit einem vorgestellten "Auswahl-Seite" voll von den Daten, die Sie Bearbeiten dürfen. Die Seite hat einige Checkboxen und drop-down-Listen an der Spitze, die verwendet werden, die als Filter für das gridview-unten rechts. Klicken auf den entsprechenden link auf einem bestimmten rown leitet Sie zu einer Detailseite für diesen Artikel.

Den Checkboxen, wenn Sie ausgelöst werden, verursachen eine weitere Reise auf die Datenbank zu greifen, die Liste der Objekte, die das datagrid gebunden ist (mit Angabe, welche Klassen von Objekten werden aus der Datenbank gelesen). Die drop-down-Listen werden verwendet, um 'filter' im display. Diese Filter laufen sehr schnell - kein problem. Jedoch, bestimmte Touren in die Datenbank aufrufen, die eine Menge von historischen Daten, und es eine Weile dauert, bis die Seite wieder. Wir wollten etwas auf dem Bildschirm, um dem Benutzer mitzuteilen, dass die software ausgeführt wird.

Beschlossen wir auf den Versuch, die Methodik hier in Matt berseth ' s blog

Leider muss ich etwas falsch, wie ich bin nicht immer die pop-up animation".

Der erste Unterschied ist, dass die Seite in Frage, hat eine master-Seite - ich weiß nicht, ob das wichtig. Aber hier sind Ausschnitte von der aspx-nach dem asp:Content und asp:ScriptManager tags:

Zuerst habe ich die onUpdating und onUpdate-Funktion wie in dem Beispiel auf der verlinkten Seite, nur geändert, um zu entsprechen mit den Namen meiner GridView.

Dann gibt es den start der 'Verpackung' div, beginnt mit einer Tabelle, wo die Checkboxen und Dropdown-Listen sind.

Ein Beispiel, wie Sie definiert ist wie folgt:

    <asp:TableCell ID="TableCell4" runat="server"><asp:CheckBox ID="chkShowCancelled" runat="server" Text="Cancelled" AutoPostBack="True" /></asp:TableCell>
    <asp:TableCell>TO#:<asp:DropDownList ID="ddlTO" runat="server" AutoPostBack="True"></asp:DropDownList></asp:TableCell>

Danach ist das UpdatePanel mit der gridview in:

<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:GridView ID="grdRequests" runat="server" Style="z-index: 100; left: 0px; top: 0px" 
            AutoGenerateColumns="False" CellPadding="4" Font-Size="Small" ForeColor="#333333" 
            GridLines="None" PageSize="25" AutoGenerateSelectButton="False" AllowSorting="True" Width="100%" EnableViewState="False">
            <HeaderStyle CssClass="tableheader" />
            <FooterStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#EFF3FB" />
            <Columns>
                 ...Template Fields Deleted for Brevity...
            </Columns>
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#034EA1" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
    </ContentTemplate> </asp:UpdatePanel>

Gleich nach, die AnimationExtender und das popup-panel

<cc1:UpdatePanelAnimationExtender runat="server" TargetControlID="updatePanel">
    <Animations>
        <OnUpdating>
            <Parallel duration="0">
                <ScriptAction Script="onUpdating();" />
            </Parallel>
        </OnUpdating>
        <OnUpdated>
            <Parallel duration="0">
                <ScriptAction Script="onUpdated();" />
            </Parallel>
        </OnUpdated>
    </Animations>
</cc1:UpdatePanelAnimationExtender>
<asp:Panel ID="pnlPopup" runat="server" CssClass="progress" style="display:none;">
    <div class="pcontainer">
        <div class="pheader">Loading, please wait...</div>
        <div class="pbody">
            <img alt="Progressing..." src="~/Images/activity.gif" />
        </div>
    </div>
</asp:Panel> 

Dann nur das Ende-tag für die 'Verpackung' div-gerade vor dem Tisch.

In den Beispielen, Matt fügt einfach die Seite, um zu schlafen mit System.Threading.Thread.Sleep(3000) - Anweisung in seine Seite.Belastung (nach Prüfung IsPostback) zu lassen, die animation, pop-up und display. Ich habe jede Menge Los auf der Seite.Belastung (codebehind in VB), aber die animation wird NICHT kommen, wenn ich auf eine der Checkboxen (um eine lange Reise auf die Datenbank), oder wählen Sie etwas aus einem drop-down-Liste (um die Ergebnisse zu filtern, die ich bereits habe).

Wenn es darauf ankommt, die Verpackung div, die die Tabelle, GridView, UpdatePanel, UpdatePanelAnimationExtender ist definiert keine Eigenschaften. Es war wirklich nur da, um abzugrenzen, die Javascript aus der asp-tags.

Was bin ich?

  • Sind Ajax-Funktionen arbeitet korrekt an anderer Stelle auf der Website? I. e. sind update-panels durchführen von Asynchronen postbacks, wo zu erwarten?
  • Wir haben versucht, einige UpdatePanel-Zeug eine Weile zurück, aber es hat nicht funktioniert - dachte, es könnte ein problem mit unserem web-server wenn Sie versuchen, aufrufen von web-services (nicht die Zeit haben, richtig zu diagnostizieren). Aber Dinge wie das Akkordeon-extender und Panelrounder gut funktionieren.
  • wir hatten einige Animationen, die wir verwenden, während ein grid geladen hat, aber das laden geschah so schnell, dass wir nicht sehen, in der animation. Dies könnte das sein, was hier geschieht, in welchem Fall würden Sie brauchen, um zu verlangsamen, um es zu sehen obwohl ich nicht weiß, wie Sie es hier tun. Erhöhen Dauer vielleicht?
  • Das update kann dauern als viel als 30 Sekunden. Ich denke was mir fehlt ist das, was es ist, dass wirklich 'feuert' der code, um pop das panel. Zumindest, wenn es 'geflasht' und verschwand auf schnelle updates, ich könnte mit ihm arbeiten, aber ich bin nicht zu sehen, etwas, und das ist das, was so verwirrend ist.
InformationsquelleAutor David | 2009-06-16
Schreibe einen Kommentar