2010-02-25 1 views
1

Как программно переключиться на этап asp:CompleteWizardStep в событии OnCreatingUser в элементе управления asp:CreateUserWizard?Программно переключаться на CompleteWizardStep в элементе управления CreateUserWizard

веб 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> 

код за

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

Что он делает вместо этого, и почему вы вручную креа вместо того, чтобы позволить этому элементу управления сделать это за вас? – Greg

+0

@Greg. Он переходит к представлению 'asp: CreateUserWizardStep' с именем пользователя и электронной почтой, заполненным входом от пользователя. Он вообще не отображает представление 'asp: CompleteWizardStep'. Даже если я не программировал метод 'Memberhip.CreateUser'. –

+0

@Greg - я удаляю событие OnCreatingUser и работает отлично. –

ответ

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

@Sky Sanders - вызов 'MoveTo' не помог решить проблему. –

+0

, если вы хотите полностью обойти встроенную функциональность элемента управления, установите «e.Cancel = true;», а затем MoveTo. Элемент управления больше не будет создавать пользователя или отправлять его по электронной почте. – Greg

+0

@Greg - Не работает. Я применил локальную переменную к объекту 'LoginCancelEventArgs', используя объект' e', и он не отобразил элемент управления asp: CompleteWizardStep. –

0

Я просто воссоздал свое решение в VS2008/.net 3.5, используя пустой обработчик события OnCreatingUser и «работает на мой компьютер". Итак, что может быть причиной этой проблемы?

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-за:

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" /> 

Видео из него работает: http://www.screentoaster.com/watch/stWEJSR0ZIR19YRVleWV9QXlJX

+0

@Greg - я не могу смотреть видео, потому что он заблокирован моим WebSense на работе. Я буду смотреть, когда вернусь домой. –

+0

@Greg. Я использую модель проекта веб-сайта вместо модели проекта веб-приложения. Это не должно меняться. –

+0

Разработчик за WebSense - преступление. :( – Greg