Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Wizard-Klasse

Stellt Navigation und eine Benutzeroberfläche bereit, mit denen verknüpfte Daten in mehreren Schritten erfasst werden können.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

[BindableAttribute(false)] 
public class Wizard : CompositeControl
/** @attribute BindableAttribute(false) */ 
public class Wizard extends CompositeControl
BindableAttribute(false) 
public class Wizard extends CompositeControl
Nicht zutreffend.

Sie können das Wizard-Steuerelement für folgende Aktionen verwenden:

  • Erfassen von verknüpften Daten in mehreren Schritten

  • Aufteilen von größeren Webseiten zum Erfassen von Benutzereingaben in kleinere logische Stufen

  • Verwenden der linearen oder der nicht-linearen Navigation zum Bearbeiten der Schritte

Das Wizard-Steuerelement enthält die folgenden Komponenten:

  • Eine WizardStepCollection-Auflistung von Schritten, die die Benutzeroberfläche für jeden Schritt enthält, wie vom Seitenentwickler festgelegt.

  • Integrierte Navigationsfunktionen, die in Abhängigkeit vom StepType-Wert die anzuzeigenden Schaltflächen bestimmen.

  • Einen Headerbereich, der für die Anzeige spezifischer Informationen für den aktuellen Schritt des Benutzers angepasst werden kann.

  • Einen Randleistenbereich, mit dessen Hilfe schnell zu bestimmten Schritten im Steuerelement navigiert werden kann.

    HinweisHinweis:

    Wenn Sie Microsoft Visual Studio 2005 verwenden, beachten Sie, dass der ActiveStepIndex in der Quellansicht beibehalten wird. Wenn Sie die WizardSteps-Eigenschaft in der Entwurfsansicht ändern, indem Sie auf die Randleistenschaltflächen klicken, und anschließend die Seite ausführen, wird möglicherweise der erste Schritt des Wizard-Steuerelements nicht angezeigt, da ActiveStepIndex eventuell auf einen anderen Schritt verweist.

Jedem Schritt im Wizard-Steuerelement ist eine StepType-Eigenschaft zugeordnet, die die Art der zugehörigen Navigationsfunktion bestimmt. Wenn Sie für die StepType-Eigenschaft keinen Wert angeben, wird der Standardwert Auto verwendet. In der folgenden Tabelle werden die verfügbaren Einstellungen für die StepType-Eigenschaft und das sich daraus ergebende Verhalten des Schritts aufgelistet.

WizardStepType.Auto

Die für den Schritt wiedergegebene Navigationsbenutzeroberfläche wird durch die Reihenfolge bestimmt, in der der Schritt deklariert wird.

WizardStepType.Complete

Der Schritt wird zuletzt angezeigt. Es werden keine Navigationsschaltflächen wiedergegeben.

WizardStepType.Finish

Der Schritt stellt den letzten beim Erfassen von Benutzerdaten dar. Die Schaltfläche Fertig stellen wird für die Navigation wiedergegeben.

WizardStepType.Start

Der Schritt wird zuerst angezeigt. Eine Schaltfläche Zurück wird nicht wiedergegeben.

WizardStepType.Step

Der Schritt kann an beliebiger Stelle zwischen dem ersten und dem letzten erfolgen. Die Schaltflächen Zurück und Weiter werden für die Navigation wiedergegeben.

Mit dem Wizard-Steuerelement können Daten im Rahmen der linearen oder der nicht-linearen Navigation erfasst werden. In manchen Fällen werden bei der nicht-linearen Navigation nicht erforderliche Schritte übersprungen, oder es wird zu bereits verarbeiteten Schritten zurückgekehrt, um einen Wert zu ändern. Das Wizard-Steuerelement behält seinen Zustand zwischen den Schritten bei, sodass die in einem Schritt eingegebenen Daten nicht in einem Datenspeicher beibehalten werden müssen, bis alle Schritte des Wizard-Steuerelements abgeschlossen wurden.

Wenn Sie die erfassten Daten jedoch beim Bearbeiten der einzelnen Schritte in einem Datenspeicher beibehalten möchten, z. B. beim Auslösen des NextButtonClick-Ereignisses, müssen Sie die AllowReturn-Eigenschaft des WizardStepBase-Objekts auf false festlegen, sodass der Benutzer nicht zu einem zuvor abgeschlossenen Schritt zurückwechseln und bereits gesendete Werte ändern kann.

Das Wizard-Steuerelement erbt die folgenden Befehlsnamen von der View-Klasse und der MultiView-Klasse: NextViewCommandName, PreviousViewCommandName, SwitchViewByIDCommandName und SwitchViewByIndexCommandName. Das Assistenten-Steuerelement ignoriert diese Befehlsnamen und fügt keine spezielle Logik ein, die diese Befehle für die automatische Verwendung bei der Navigation aktiviert. Wenn ein Befehlsname aus einer Schaltfläche im Wizard-Steuerelement entfernt wird oder fehlt, wird keine Ausnahme ausgelöst. Wenn z. B. bei Schaltfläche StartNavigationTemplate kein Wert für CommandName angegeben wurde, wird keine Ausnahme ausgelöst.

Mithilfe der MoveTo-Methode oder der ActiveStepIndex-Eigenschaft können Sie den derzeit im Wizard-Steuerelement angezeigten Schritt dynamisch ändern.

HinweisHinweis:

Wenn Sie einen WizardStep programmgesteuert im Page_Load-Ereignishandler hinzufügen, müssen Sie vor dem Laden der Seite diesem Schritt die Navigation hinzufügen.

Die Darstellung des Wizard-Steuerelements kann vom Benutzer für alle Vorlagen, Designs und Stileinstellungen vollständig angepasst werden. Sie können z. B. die Eigenschaften HeaderTemplate, SideBarTemplate, StartNavigationTemplate, FinishNavigationTemplate und StepNavigationTemplate verwenden, um die Oberfläche des Wizard-Steuerelements anzupassen.

HinweisHinweis:

Durch Festlegen der Eigenschaften FinishNavigationTemplate, DisplaySideBar, HeaderTemplate, SideBarTemplate, StartNavigationTemplate und StepNavigationTemplate werden die untergeordneten Steuerelemente des Wizard-Steuerelements neu erstellt. Während des Vorgangs geht daher der Ansichtszustand für die untergeordneten Steuerelemente verloren. Um eine solche Situation zu vermeiden, behalten Sie den Steuerelementzustand der untergeordneten Steuerelemente des Wizard-Steuerelements explizit bei, oder fügen Sie in Vorlagen keine Steuerelemente ein.

Beachten Sie, dass das Wizard-Steuerelement keine spezielle Microsoft Internet Explorer-Darstellung für einen anderen Modus als den Standardmodus oder Quirks-Modus unterstützt. Sie erzielen die beste Internet Explorer-Darstellung mit dem Wizard-Steuerelement, wenn Sie den XHTML-Dokumenttyp verwenden, der Visual Web Developer und Visual Studio standardmäßig hinzugefügt wird.

Eingabehilfen

Das für dieses Steuerelement standardmäßig wiedergegebene Markup entspricht eventuell nicht den Standards für die Eingabehilfen wie beispielsweise den Richtlinien der Web Content Accessibility Guidelines 1.0 (WCAG) mit der Priorität 1. So führt z. B. die Verwendung von CancelDestinationPageUrl oder FinishDestinationPageUrl zu einer Seitenaktualisierung, die der Eingabehilfenanforderung widerspricht, dass eine Seite nicht aktualisiert werden soll, wenn auf eine ihrer Schaltflächen oder Verknüpfungen geklickt wird. Details über die Unterstützung von Eingabehilfen für dieses Steuerelement finden Sie unter Steuerelemente und Eingabehilfen von ASP.NET.

ThemaPosition
Exemplarische Vorgehensweise: Erstellen eines einfachen ASP.NET-Wizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Erweiterte Verwendung des ASP.NET-Wizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Anpassen des ASP.NET-CreateUserWizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Erstellen eines einfachen ASP.NET-Wizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Anpassen des ASP.NET-CreateUserWizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Erstellen eines einfachen ASP.NET-Wizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Erweiterte Verwendung des ASP.NET-Wizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Erweiterte Verwendung des ASP.NET-Wizard-SteuerelementsErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Anpassen des ASP.NET-CreateUserWizard-SteuerelementsErstellen von ASP.NET-Webanwendungen

Im folgenden Codebeispiel wird veranschaulicht, wie ein Wizard-Steuerelement zum Erfassen von Benutzernamen und -adressen mit der Option zur Eingabe einer separaten Lieferadresse definiert wird. Wenn der Benutzer SeparateShippingCheckBox nicht aktiviert und somit das Hinzufügen einer separaten Lieferadresse nicht anfordert, wird das Wizard-Steuerelement direkt aus Step2 nach Finish verschoben. Im Finish-Schritt verfügt der Benutzer über die Option, durch Klicken auf GoBackButton zum Anfang des Wizard-Steuerelements zurückzukehren. Der Benutzer wird jedoch zu Step2 zurückgeleitet, da die AllowReturn-Eigenschaft für Step1 auf false festgelegt wurde.

SicherheitshinweisSicherheitshinweis

Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

<%@ Page Language="C#" CodeFile="WizardClass.cs" Inherits="WizardClasscs_aspx" %>

<!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>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">    
      <asp:Wizard id="Wizard1" 
        runat="server" 
        onfinishbuttonclick="OnFinishButtonClick" 
        backcolor="#EFF3FB" 
        font-names="Verdana" 
        font-size="0.8em"
        borderwidth="1px" 
        bordercolor="#B5C7DE" 
        style="font-size: medium; font-family: Verdana;" 
        onactivestepchanged="OnActiveStepChanged">       
      <StepStyle forecolor="#333333" 
        font-size="0.8em" />
        <WizardSteps>        
          <asp:WizardStep id="Step1" 
            title="One"
            allowreturn="false" 
            runat="server" >
            Welcome to the Wizard example.  This step's AllowReturn property is set 
            to false, so after you leave this step you will not be able to return to it.
          </asp:WizardStep>          
          <asp:WizardStep id="Step2"
            title="Two" 
            runat="server" >
            <!-- ... Put UI elements here ... -->
            Please enter your billing information.
            <br />
            Name:<br />
            <asp:TextBox runat="server" 
              id="BillingName" 
              width="226px" 
              height="17px" /> 
            <br />
            E-mail Address:<br />
            <asp:TextBox runat="server" 
              id="EmailAddress" 
              width="224px" 
              height="17px" />
            <br />
            Address Line 1: <br />
            <asp:TextBox runat="server" 
              id="BillingAddressLine1" 
              width="314px" 
              height="17px" />
            <br />
            Address Line 2: <br />
            <asp:TextBox runat="server" 
              id="BillingAddressLine2" 
              width="314px" 
              height="17px" />
            <br />
            City: <br />
            <asp:TextBox runat="server" 
              id="BillingCity" 
              width="155px" 
              height="17px" /> 
            <br />
            State: <br />
            <asp:TextBox runat="server" 
              id="BillingState" 
              width="75px" 
              height="17px" /> 
            <br />
            ZIP Code: <br />
            <asp:TextBox runat="server" 
              id="BillingZip" 
              height="17px" />
            <br /><br />
            <asp:CheckBox runat="server" 
              id="SeparateShippingCheckBox" 
              text="Please check here if you would like to add a separate shipping address." />
          </asp:WizardStep>          
          <asp:WizardStep id="Step3" 
            title="Three" 
            runat="server" >
            <!-- Gather the shipping address in this step if CheckBox1 was selected. -->
            Please enter your shipping information.
            <br />
                Name:<br />
                <asp:TextBox runat="server" 
                  id="ShippingName" 
                  height="17px" /> 
                <br />
                Address Line 1: <br />
                <asp:TextBox runat="server" 
                  id="ShippingAddress1" 
                  width="370px" 
                  height="17px" />
                <br />
                Address Line 2: <br />
                <asp:TextBox runat="server" 
                  id="ShippingAddress2" 
                  width="370px" 
                  height="17px" />
                <br />
                City: <br />
                <asp:TextBox runat="server" 
                  id="ShippingCity" 
                  height="17px" /> 
                <br />
                State: <br />
                <asp:TextBox runat="server" 
                  id="ShippingState" 
                  width="65px" 
                  height="17px" />
                <br /> 
                ZIP Code: <br />
                <asp:TextBox runat="server" 
                  id="ShippingZip" 
                  height="17px" />
          </asp:WizardStep>
          <asp:WizardStep id="Finish" 
            title="Finish"
            runat="server" >
            <!-- Put UI elements here for the Finish step. -->
            <asp:Button runat="server" 
              id="GoBackButton" 
              text="Go Back to Step 2" 
              onclick="OnGoBackButtonClick"
              forecolor="#284E98" 
              font-names="Verdana"
              font-size="1.0em" 
              borderstyle="Solid" 
              borderwidth="1px" 
              bordercolor="#507CD1" 
              backcolor="White" /> 
          </asp:WizardStep>          
          <asp:WizardStep runat="server" 
            steptype="Complete" 
            title="Complete" 
            id="Complete">
            <asp:Label runat="server" 
              id="CompleteMessageLabel" 
              width="408px" 
              height="24px">
            </asp:Label>
          </asp:WizardStep>
        </WizardSteps> 
        <NavigationButtonStyle forecolor="#284E98" 
          font-names="Verdana"
          font-size="1.0em" 
          borderstyle="Solid" 
          borderwidth="1px" 
          bordercolor="#507CD1" 
          backcolor="White" />
        <HeaderStyle forecolor="White" 
          horizontalalign="Center" 
          font-size="0.9em" 
          font-bold="True"
          backcolor="#284E98" 
          borderstyle="Solid" 
          bordercolor="#EFF3FB" 
          borderwidth="2px" />
        <SideBarStyle verticalalign="Top" 
          horizontalalign="Center"
          font-size="0.8em" 
          forecolor="#000099"
          backcolor="#EFF3FB"
          width="45px" />
        <HeaderTemplate>
          <b>Wizard Example</b>
        </HeaderTemplate>
      </asp:Wizard>
    </form>
  </body>
</html>

Das folgende Codebeispiel ist die Code-Behind-Datei für die im vorangehenden Beispiel verwendete Webseite.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class WizardClasscs_aspx : System.Web.UI.Page
{
    protected void OnFinishButtonClick(Object sender, WizardNavigationEventArgs e)
    {
        // The OnFinishButtonClick method is a good place to collect all
        // the data from the completed pages and persist it to the data store. 

        // For this example, write a confirmation message to the Complete page
        // of the Wizard control.
        Label tempLabel = (Label)Wizard1.FindControl("CompleteMessageLabel");
        if (tempLabel != null)
        {
            tempLabel.Text = "Your order has been placed. An e-mail confirmation will be sent to "
            + (EmailAddress.Text.Length == 0 ? "your e-mail address" : EmailAddress.Text) + ".";
        }
    }

    protected void OnGoBackButtonClick(object sender, EventArgs e)
    {
        // The GoBackButtonClick event is raised when the GoBackButton
        // is clicked on the Finish page of the Wizard.  

        // Check the value of Step1's AllowReturn property.
        if (Step1.AllowReturn)
        {
            // Return to Step1.
            Wizard1.ActiveStepIndex = Wizard1.WizardSteps.IndexOf(this.Step1);
        }
        else
        {
            // Step1 is not a valid step to return to; go to Step2 instead.
            Wizard1.ActiveStepIndex = Wizard1.WizardSteps.IndexOf(this.Step2);
            Response.Write("ActiveStep is set to Step2 because Step1 has AllowReturn set to false.");
        }
    }

    protected void OnActiveStepChanged(object sender, EventArgs e)
    {
        // If the ActiveStep is changing to Step3, check to see whether the 
        // SeparateShippingCheckBox is selected.  If it is not, skip to the
        // Finish step.
        if (Wizard1.ActiveStepIndex == Wizard1.WizardSteps.IndexOf(this.Step3))
        {
            if (this.SeparateShippingCheckBox.Checked)
            {
                Wizard1.MoveTo(this.Step3);
            }
            else
            {
                Wizard1.MoveTo(this.Finish);
            }
        }
    }
}

  • AspNetHostingPermission  für den Betrieb in einer Hostumgebung. Anforderungswert: LinkDemand, Berechtigungswert: Minimal
  • AspNetHostingPermission  für den Betrieb in einer Hostumgebung. Anforderungswert: InheritanceDemand, Berechtigungswert: Minimal

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

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen: