2010-02-25 48 views
1

如何以编程方式切换到asp:CreateUserWizard控件中的OnCreatingUser事件中的asp:CompleteWizardStep步骤?以编程方式切换到CreateUserWizard控件中的CompleteWizardStep

ASP.NET Web表单

<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

它能做什么,而不是,为什么你手动创建crea用户而不是让控制器为你做? – Greg 2010-03-01 22:48:10

+0

@Greg - 它进入'asp:CreateUserWizardStep'视图,用户名和电子邮件控件填入用户输入。它根本不显示'asp:CompleteWizardStep'视图。即使我不以编程方式调用'Membership.CreateUser'方法。 – 2010-03-01 23:18:06

+0

@Greg - 我删除了“OnCreatingUser”事件,它工作得很好。 – 2010-03-01 23:52:45

回答

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

@Sky Sanders - 调用MoveTo并不能解决问题。 – 2010-03-01 21:04:50

+0

如果要完全绕过控件的内置功能,请设置“e.Cancel = true;”,然后“MoveTo”。该控件将不再创建用户或给他们发送电子邮件。 – Greg 2010-03-01 22:52:14

+0

@Greg - 没有工作。我使用'e'对象将一个局部变量赋值给'LoginCancelEventArgs'对象,并且它没有显示asp:CompleteWizardStep控件。 – 2010-03-01 23:25:26

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> 

代码隐藏:

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阻止。我回家时会看。 – 2010-03-02 20:08:45

+0

@Greg - 我正在使用网站项目模型而不是Web应用程序项目模型。这不应该有所作为。 – 2010-03-02 20:11:10

+0

WebSense背后的开发者是犯罪。 :( – Greg 2010-03-02 20:46:22

相关问题