Exportar (0) Imprimir
Expandir todo

Wizard (Clase)

Actualización: noviembre 2007

Proporciona navegación y una interfaz de usuario (IU) para recopilar datos relacionados en varios pasos.

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)

[BindableAttribute(false)]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class Wizard : CompositeControl
/** @attribute BindableAttribute(false) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class Wizard extends CompositeControl
public class Wizard extends CompositeControl
<asp:Wizard />

Puede utilizar el control Wizard para:

  • Recopilar datos relacionados en varios pasos.

  • Separar en pasos lógicos menores una página Web mayor utilizada para recopilar datos proporcionados por el usuario.

  • Permitir la navegación lineal o no lineal en los pasos.

El control Wizard está formado por los componentes siguientes:

  • Una colección WizardStepCollection de pasos que contienen la interfaz de usuario para cada paso, según lo definido por el desarrollador de páginas.

  • Funciones de navegación integradas que determinan los botones adecuados para mostrar en función del valor de StepType.

  • Un área de encabezado que se puede personalizar con el fin de mostrar información concreta para el paso en el que se encuentra el usuario.

  • Un área de barra lateral que se puede utilizar para navegar rápidamente por los pasos del control.

    3t61838w.alert_note(es-es,VS.90).gifNota:

    Si está utilizando Microsoft Visual Studio 2005, tenga en cuenta que la propiedad ActiveStepIndex se conserva en la vista Código fuente. Si cambia la propiedad WizardSteps en la vista Diseño haciendo clic en los botones de barra lateral y después ejecuta la página, puede que no se muestre el primer paso del control Wizard, ya que la propiedad ActiveStepIndex puede estar señalando a otro paso.

Cada uno de los pasos del control Wizard tiene una propiedad StepType que determina el tipo de funcionalidad de navegación que tiene el paso. Si no especifica ningún valor para la propiedad StepType, se utilizará el valor predeterminado Auto. La tabla siguiente muestra los valores disponibles para la propiedad StepType y el comportamiento resultante del paso.

WizardStepType.Auto

El orden en el que se declara el paso determina la interfaz de usuario para la navegación que se utiliza en el paso.

WizardStepType.Complete

El paso es el último que aparece. No se representa ningún botón de navegación.

WizardStepType.Finish

El paso es el último que recopila datos del usuario. El botón Finalizar se representa para la navegación.

WizardStepType.Start

El paso es el primero que aparece. No incluye ningún botón Anterior.

WizardStepType.Step

El paso es cualquier paso comprendido entre el primero y el último. Los botones Anterior y Siguiente se representan para la navegación.

Con el control Wizard, los datos se pueden recopilar mediante la navegación lineal o no lineal. Algunos ejemplos de navegación no lineal omiten pasos innecesarios o vuelven a un paso previamente finalizado para cambiar algún valor. El control Wizard mantiene su estado entre pasos. Por tanto, no es necesario guardar en un almacén de datos, entre pasos, los datos especificados en un paso hasta que se hayan completado todos los pasos del control Wizard.

O bien, si desea guardar los datos recopilados en un almacén de datos al completar cada paso, por ejemplo cuando se produce el evento NextButtonClick, se recomienda que establezca la propiedad AllowReturn del objeto WizardStepBase en false, para que el usuario no pueda volver a un paso previamente completado y cambiar los datos una vez que se han enviado.

El control Wizard hereda los siguientes nombres de comando de las clases View y MultiView: NextViewCommandName, PreviousViewCommandName, SwitchViewByIDCommandName y SwitchViewByIndexCommandName. El control Wizard omite estos nombres de comando y no incluye ninguna lógica especial para habilitar estos comandos de forma que funcionen automáticamente para la navegación. Si un nombre de comando se elimina de o falta en un botón en el control Wizard, no se produce ninguna excepción. Por ejemplo, si falta un valor del botón StartNavigationTemplate para CommandName, no se produce ninguna excepción.

Puede utilizar el método MoveTo o la propiedad ActiveStepIndex para cambiar dinámicamente el paso que se muestra actualmente en el control Wizard.

3t61838w.alert_note(es-es,VS.90).gifNota:

Si agrega mediante programación WizardStep en el controlador de evento Page_Load, debe agregar la navegación a ese paso antes de la carga de la página.

El aspecto del control Wizard es totalmente personalizable a través de las plantillas, máscaras y configuración de estilo. Por ejemplo, puede utilizar las propiedades HeaderTemplate, SideBarTemplate, StartNavigationTemplate, FinishNavigationTemplate y StepNavigationTemplate para personalizar la interfaz del control Wizard.

3t61838w.alert_note(es-es,VS.90).gifNota:

Al establecer la propiedad FinishNavigationTemplate, DisplaySideBar, HeaderTemplate, SideBarTemplate, StartNavigationTemplate o StepNavigationTemplate se vuelven a crear los controles secundarios del control Wizard. Como resultado, el estado de vista de los controles secundarios se pierde en el proceso. Para evitar esta situación, mantenga explícitamente el estado de control de los controles secundarios del control Wizard o evite colocar los controles en las plantillas.

Tenga en cuenta que el control Wizard no admite la representación especial de Microsoft Internet Explorer para el modo no estándar o quirks. Para obtener la mejor representación de Internet Explorer utilizando el control Wizard, use el tipo de documento XHTML, que se agrega de manera predeterminada en Visual Web Developer y en Visual Studio.

Accesibilidad

Es posible que el marcado que se representa de manera predeterminada para este control no respete los estándares de accesibilidad enunciados en las directrices prioritarias de WCAG (Instrucciones de accesibilidad a contenido Web 1.0). Por ejemplo, el uso de CancelDestinationPageUrl o FinishDestinationPageUrl produce una actualización de página que no respeta la norma de accesibilidad según la cual no se debe actualizar una página cuando se hace clic en un botón o en un vínculo a una página. Para obtener detalles sobre accesibilidad compatible con este control, vea Controles y accesibilidad en ASP.NET.

TopicLocation
Tutorial: Uso avanzado del control Wizard de ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Personalizar el control CreateUserWizard de ASP.NETGenerar aplicaciones Web ASP .NET
Tutorial: Crear un control ASP.NET Wizard básicoGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Personalizar el control CreateUserWizard de ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio
Tutorial: Crear un control ASP.NET Wizard básicoGenerar aplicaciones Web ASP .NET en Visual Studio
Tutorial: Uso avanzado del control Wizard de ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio
Tutorial: Uso avanzado del control Wizard de ASP.NETdv_vwdcon

El siguiente ejemplo de código muestra cómo definir un control Wizard para recopilar el nombre y la dirección del usuario, con la opción de escribir una dirección de envío por separado. Si el usuario no selecciona SeparateShippingCheckBox y, por lo tanto, envía una petición para agregar una dirección de envío separada, el control Wizard pasa directamente de Step2 a Finish. En el paso Finish, el usuario tiene la opción de volver al principio del control Wizard haciendo clic en GoBackButton; sin embargo, lleva al usuario a Step2, porque la propiedad AllowReturn de Step1 está establecida en false.

3t61838w.alert_security(es-es,VS.90).gifNota de seguridad:

Este ejemplo tiene un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las páginas Web ASP.NET validan que los datos proporcionados por el usuario no incluyen elementos HTML ni de secuencia de comandos. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

<%@ 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>


El siguiente ejemplo de código corresponde al archivo de código subyacente para la página Web del ejemplo anterior.

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);
            }
        }
    }
}


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft