War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern

UpdateProgress-Klasse

Aktualisiert: November 2007

Stellt visuelles Feedback im Browser bereit, wenn der Inhalt von einem oder mehreren UpdatePanel-Steuerelementen aktualisiert wird.

Namespace:  System.Web.UI
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class UpdateProgress : Control, 
	IScriptControl
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class UpdateProgress extends Control implements IScriptControl
public class UpdateProgress extends Control implements IScriptControl
<asp:UpdateProgress />

Das UpdateProgress-Steuerelement ermöglicht es Ihnen, Feedback zum Fortschritt des teilweisen Renderings von Seiten bereitzustellen. Für Postbacks oder ursprüngliches Seitenrendering wird der Inhalt des UpdateProgress-Steuerelements nicht angezeigt.

Die Seite kann mehrere UpdateProgress-Steuerelemente enthalten. Jedes kann einem anderen UpdatePanel-Steuerelement zugeordnet werden. Sie können jedoch auch ein UpdateProgress-Steuerelement verwenden und dieses allen UpdatePanel-Steuerelementen auf der Seite zuordnen.

Das UpdateProgress-Steuerelement rendert ein div-Element, das je nach dem Ursprung des Postbacks und je nachdem, ob die AssociatedUpdatePanelID-Eigenschaft des UpdateProgress-Steuerelements festgelegt ist, angezeigt oder ausgeblendet wird.

Zuordnen eines UpdateProgress-Steuerelements zu einem UpdatePanel-Steuerelement

UpdateProgress-Steuerelemente werden einem UpdatePanel-Steuerelement zugeordnet, indem die AssociatedUpdatePanelID-Eigenschaft des UpdateProgress-Steuerelements festgelegt wird. Wenn ein Postbackereignis aus einem UpdatePanel-Steuerelement stammt, werden alle zugeordneten UpdateProgress-Steuerelemente angezeigt. Wenn die AssociatedUpdatePanelID-Eigenschaft nicht festgelegt ist, zeigt das UpdateProgress-Steuerelement den Status eines asynchronen Postbacks an, das aus einem UpdatePanel-Steuerelement stammt. Es wird außerdem für alle Steuerelemente angezeigt, die Trigger für Bereiche sind.

Die AssociatedUpdatePanelID-Eigenschaft wirkt sich wie folgt auf das Verhalten des UpdateProgress-Steuerelements aus:

  • Wenn die AssociatedUpdatePanelID-Eigenschaft nicht festgelegt ist, wird das UpdateProgress-Steuerelement für die folgenden Postbacks angezeigt:

    • Postbacks, die aus einem beliebigen UpdatePanel-Steuerelement stammen.

    • Postbacks, die aus Steuerelementen stammen, die asynchrone Trigger für ein UpdatePanel-Steuerelement darstellen.

  • Wenn die AssociatedUpdatePanelID-Eigenschaft auf eine UpdatePanel-Steuerelement-ID festgelegt ist, wird das UpdateProgress-Steuerelement für Postbacks angezeigt, die aus dem zugeordneten UpdatePanel-Steuerelement stammen.

Wenn die AssociatedUpdatePanelID-Eigenschaft auf ein nicht vorhandenes Steuerelement festgelegt ist, wird das UpdateProgress-Steuerelement nie angezeigt.

Wenn die ChildrenAsTriggers-Eigenschaft der UpdatePanel-Steuerelemente auf false festgelegt ist und ein Postback aus einem UpdatePanel-Steuerelement stammt, werden alle zugeordneten UpdateProgress-Steuerelemente dennoch angezeigt.

Angeben des Inhalts des UpdateProgress-Steuerelements

Geben Sie mit der ProgressTemplate-Eigenschaft die Meldung an, die von einem UpdateProgress-Steuerelement angezeigt wird. Wenn die ProgressTemplate-Eigenschaft leer ist, wird beim Anzeigen des UpdateProgress-Steuerelements nichts angezeigt.

Die Vorlage kann HTML und Markup enthalten. Sie können beispielsweise ein animiertes Bild anzeigen, das den Benutzer benachrichtigt, dass das Postback verarbeitet wird. Außerdem können Sie eine Schaltfläche anzeigen, auf die der Benutzer klicken kann, um die Teilaktualisierung von Seiten zu beenden. Möglicherweise empfiehlt es sich, während der Ausführung eines Postbacks alle anderen Postbacks zu verhindern. Im folgenden Beispiel wird ein Clientskript veranschaulicht, mit dem Sie diese Aufgaben ausführen können.

<%@ Page Language="C#" %>

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

<script runat="server">
    protected void Button_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>UpdateProgress Example</title>
    <style type="text/css">
    #UpdatePanel1, #UpdatePanel2, #UpdateProgress1 {
      border-right: gray 1px solid; border-top: gray 1px solid; 
      border-left: gray 1px solid; border-bottom: gray 1px solid;    
    }
    #UpdatePanel1, #UpdatePanel2 { 
      width:200px; height:200px; position: relative;
      float: left; margin-left: 10px; margin-top: 10px;
     }
     #UpdateProgress1 {
      width: 400px; background-color: #FFC080; 
      bottom: 0%; left: 0px; position: absolute;
     }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(InitializeRequest);
    function InitializeRequest(sender, args) {
      if (prm.get_isInAsyncPostBack())
       {
          args.set_cancel(true);
       }
    }
    function AbortPostBack() {
      if (prm.get_isInAsyncPostBack()) {
           prm.abortPostBack();
      }        
    }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <%=DateTime.Now.ToString() %> <br />
    <asp:Button ID="Button1" runat="server" Text="Refresh Panel" OnClick="Button_Click" />    
    <br />
    Clicking the button while an asynchronous postback is in progress will
    cancel the new postback. New postbacks are only allowed if one is not
    already in progress.
    </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <%=DateTime.Now.ToString() %> <br />
    <asp:Button ID="Button2" runat="server" Text="Refresh Panel" OnClick="Button_Click"/>    
    </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdateProgress ID="UpdateProgress1" runat="server">
    <ProgressTemplate>
      Update in progress...
      <input type="button" value="stop" onclick="AbortPostBack()" />
    </ProgressTemplate>
    </asp:UpdateProgress>
    </div>
    </form>
</body>
</html>


Sie können den Beispielcode verwenden, indem Sie das onClick-Attribut eines HtmlButton-Steuerelements auf "AbortPostBack ()" festlegen. Weitere Informationen finden Sie unter der abortPostBack-Methode und der isInAsyncPostBack-Eigenschaft der PageRequestManager-Klasse.

Platzieren von UpdateProgress-Steuerelementen auf der Seite

UpdateProgress-Steuerelemente können sich innerhalb oder außerhalb von anderen UpdatePanel-Steuerelementen befinden. Die Anzeige der Vorlage des UpdateProgress-Steuerelements hängt nicht davon ab, an welcher Position sich das UpdateProgress-Steuerelement befindet. In einem geschachtelten UpdatePanel-Steuerelement befindet sich ein untergeordneter Bereich in einem übergeordneten Bereich. In diesem Fall bewirkt ein Postback, das aus dem untergeordneten Bereich stammt, dass alle UpdateProgress-Steuerelemente, die dem untergeordneten Bereich zugeordnet sind, sowie der übergeordnete Bereich angezeigt werden. Wenn ein Postback aus einem direkten untergeordneten Steuerelement des übergeordneten Bereichs stammt, werden nur die UpdateProgress-Steuerelemente angezeigt, die dem übergeordneten Bereich zugeordnet sind.

Festlegen der Anzeige von UpdateProgress-Steuerelementen

Standardmäßig wartet das UpdateProgress-Steuerelement 0,5 Sekunden (500 Millisekunden), bevor sein Inhalt angezeigt wird. So wird verhindert, dass das Steuerelement blinkt, wenn ein asynchrones Postback sehr schnell erfolgt. Sie können die Verzögerung angeben, indem Sie die DisplayAfter-Eigenschaft festlegen.

Wenn Sie genauer festlegen müssen, wann UpdateProgress-Steuerelemente angezeigt werden, können Sie ein Clientskript für das beginRequest-Ereignis und das endRequest-Ereignis der PageRequestManager-Klasse angeben. Im beginRequest-Ereignishandler können Sie das DOM-Element anzeigen, das das UpdateProgress-Steuerelement darstellt. Im endRequest-Ereignishandler wird es ausgeblendet.

In den folgenden Situationen müssen Sie ein Clientskript angeben, um ein UpdateProgress-Steuerelement anzuzeigen, wenn ein Ziel-UpdatePanel-Steuerelement aktualisiert wird:

  • Ein Postback aus einem Steuerelement ist als asynchroner Postbacktrigger für den Bereich registriert, und auf der Seite befindet sich ein UpdateProgress-Steuerelement. Die AssociatedUpdatePanelID-Eigenschaft ist jedoch nicht auf die ID des Bereichs festgelegt.

  • Postbacks aus Steuerelementen werden mit der RegisterAsyncPostBackControl-Methode des ScriptManager-Steuerelements als asynchrone Postback-Steuerelemente registriert.

TopicLocation
UpdateProgress-Steuerelement – EinführungErstellen von ASP.NET-Webanwendungen in Visual Studio
Übersicht über das UpdatePanel-SteuerelementErstellen von ASP.NET-Webanwendungen in Visual Studio
Programmieren von UpdateProgress-Steuerelementen in ClientskriptErstellen von ASP.NET-Webanwendungen in Visual Studio
Übersicht über das UpdateProgress-SteuerelementErstellen von ASP.NET-Webanwendungen in Visual Studio
UpdateProgress-Steuerelement – EinführungErstellen von ASP.NET-Webanwendungen in Visual Studio
Übersicht über das UpdatePanel-SteuerelementErstellen von ASP.NET-Webanwendungen in Visual Studio
Programmieren von UpdateProgress-Steuerelementen in ClientskriptErstellen von ASP.NET-Webanwendungen in Visual Studio
Übersicht über das UpdateProgress-SteuerelementErstellen von ASP.NET-Webanwendungen in Visual Studio

In den folgenden Beispielen werden verschiedene Möglichkeiten veranschaulicht, wie mit dem UpdateProgress-Steuerelement der Status während asynchroner Postbacks angezeigt werden kann.

Im folgenden Beispiel wird ein UpdateProgress-Steuerelement veranschaulicht, das die Fortschrittsanzeige für zwei UpdatePanel-Steuerelemente anzeigt.

<%@ Page Language="C#" %>

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

<script runat="server">
    protected void Button_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>UpdateProgress Example</title>
    <style type="text/css">
    #UpdatePanel1, #UpdatePanel2, #UpdateProgress1 { 
      border-right: gray 1px solid; border-top: gray 1px solid; 
      border-left: gray 1px solid; border-bottom: gray 1px solid;
    }
    #UpdatePanel1, #UpdatePanel2 { 
      width:200px; height:200px; position: relative;
      float: left; margin-left: 10px; margin-top: 10px;
     }
     #UpdateProgress1 {
      width: 400px; background-color: #FFC080; 
      bottom: 0%; left: 0px; position: absolute;
     }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <%=DateTime.Now.ToString() %> <br />
    <asp:Button ID="Button1" runat="server" Text="Refresh Panel" OnClick="Button_Click" />    
    </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <%=DateTime.Now.ToString() %> <br />
    <asp:Button ID="Button2" runat="server" Text="Refresh Panel" OnClick="Button_Click"/>    
    </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdateProgress ID="UpdateProgress1" runat="server">
    <ProgressTemplate>
      Update in progress...
    </ProgressTemplate>
    </asp:UpdateProgress>
    </div>
    </form>
</body>
</html>


Das folgende Beispiel zeigt zwei UpdateProgress-Steuerelemente. Jedes Steuerelement zeigt die Fortschrittsanzeige für ein zugeordnetes UpdatePanel-Steuerelement an.

<%@ Page Language="C#" %>

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

<script runat="server">
    protected void Button_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>UpdateProgress Example</title>
    <style type="text/css">
    #UpdatePanel1, #UpdatePanel2 { 
      width:200px; height:200px; position: relative;
      float: left; margin-left: 10px; margin-top: 10px;
      border-right: gray 1px solid; border-top: gray 1px solid; 
      border-left: gray 1px solid; border-bottom: gray 1px solid;
     }
     #UpdateProgress1, #UpdateProgress2 {
      width: 200px; background-color: #FFC080;
      position: absolute; bottom: 0px; left: 0px;
     }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <%=DateTime.Now.ToString() %> <br />
    <asp:Button ID="Button1" runat="server" Text="Refresh Panel" OnClick="Button_Click" />    
    <asp:UpdateProgress ID="UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel1" runat="server">
    <ProgressTemplate>
      UpdatePanel1 updating...
    </ProgressTemplate>
    </asp:UpdateProgress>
    </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <%=DateTime.Now.ToString() %> <br />
    <asp:Button ID="Button2" runat="server" Text="Refresh Panel" OnClick="Button_Click"/>    
    <asp:UpdateProgress ID="UpdateProgress2" AssociatedUpdatePanelID="UpdatePanel2" runat="server">
    <ProgressTemplate>
      UpdatePanel2 updating...
    </ProgressTemplate>
    </asp:UpdateProgress>
    </ContentTemplate>
    </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>


System.Object
  System.Web.UI.Control
    System.Web.UI.UpdateProgress

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft