2010-02-25 10 views
1

Comment puis-je passer par programme à l'étape asp:CompleteWizardStep dans l'événement OnCreatingUser dans le contrôle asp:CreateUserWizard?Basculez par programme vers CompleteWizardStep dans le contrôle CreateUserWizard

formulaire web ASP.NET

<asp:CreateUserWizard ID="MyCreateUserWizard" runat="server" OnCreatingUser="MyCreateUserWizard_CreatingUser"> 
    <WizardSteps> 
     <asp:CreateUserWizardStep ID="CreateUserStep1" runat="server"> 
      <!-- code here --> 
     </asp:CreateUserWizardStep> 
     <asp:CompleteWizardStep ID="CompleteWizardStep" runat="server"> 
      <!-- code here --> 
     </asp:CompleteWizardStep> 
    </WizardSteps> 
</asp:CreatedWizardStep> 

code derrière

protected void MyCreateUserWizard_CreatingUser(object sender, EventArgs e) 
{ 
    //retrieve username, password and email 

    Membership.CreateUser(username, password, email); 

    //would like to display the CompleteWizardStpe here 

} 
+0

Que faut-il faire à la place, et pourquoi êtes-vous manuellement crea ting un utilisateur au lieu de permettre au contrôle de le faire pour vous? – Greg

+0

@Greg - Il va à la vue 'asp: CreateUserWizardStep' avec le nom d'utilisateur et le contrôle e-mail rempli avec l'entrée de l'utilisateur. Il n'affiche pas la vue 'asp: CompleteWizardStep'. Même si je n'appelle pas par programme la méthode 'Membership.CreateUser'. –

+0

@Greg - Je supprime l'événement 'OnCreatingUser' et ça marche très bien. –

Répondre

0
protected void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e) 
{ 
    CreateUserWizard1.MoveTo(CompleteWizardStep1); 
} 
+0

@Sky Sanders - L'appel de 'MoveTo' n'a pas résolu le problème. –

+0

si vous souhaitez ignorer complètement la fonctionnalité intégrée du contrôle, définissez 'e.Cancel = true;', puis MoveTo. Le contrôle ne créera plus d'utilisateur ou ne les enverra plus par e-mail. – Greg

+0

@Greg - N'a pas fonctionné. Je lance une variable locale à un objet 'LoginCancelEventArgs' en utilisant l'objet' e' et n'affiche pas le contrôle asp: CompleteWizardStep. –

0

Je viens recréée votre solution dans VS2008/NET 3.5 en utilisant le gestionnaire d'événements OnCreatingUser vide et « fonctionne mon ordinateur". Alors, quoi de différent qui pourrait causer ce problème?

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" 
    Trace="false" %> 

<!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"> 
<body> 
    <form id="form1" runat="server"> 
    <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" OnCreatingUser="CreateUserWizard1_CreatingUser"> 
     <WizardSteps> 
      <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> 
      </asp:CreateUserWizardStep> 
      <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> 
      </asp:CompleteWizardStep> 
     </WizardSteps> 
    </asp:CreateUserWizard> 
    </form> 
</body> 
</html> 

code-behind:

namespace WebApplication1 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void CreateUserWizard1_CreatingUser(object sender, System.Web.UI.WebControls.LoginCancelEventArgs e) 
     { 
     } 
    } 
} 

web.config:

<authentication mode="Forms" /> 

Vidéo de fonctionner: http://www.screentoaster.com/watch/stWEJSR0ZIR19YRVleWV9QXlJX

+0

@Greg - Je ne peux pas regarder la vidéo car elle est bloquée par mon WebSense au travail. Je vais regarder quand je rentre à la maison. –

+0

@Greg - J'utilise un modèle de projet de site Web au lieu d'un modèle de projet d'application Web. Cela ne devrait pas faire de différence. –

+0

Un développeur derrière WebSense est un crime. :( – Greg