我想使用ootb的ASP.NET2.0 MembershipProvider CreateUserWizard控件,用一点定制来添加第二步.
问题是如果我的第一步是< asp:CreateUserWizardStep ...>而我的第二个是< asp:WizardStep ...>用户实际上是在用户从第一步骤点击并在他们进入第二步之前进行创建的.
这是我正在使用的(非常)基本控制:
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server"> <WizardSteps> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> </asp:CreateUserWizardStep> <asp:WizardStep runat="server" Title="License Step"> </asp:WizardStep> <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> </asp:CompleteWizardStep> </WizardSteps> </asp:CreateUserWizard>
有没有告诉控制器等到所有步骤完成之前创建用户?
解决方法
我有同样的问题.
似乎没有其他方法可以使用您想要的顺序使用CreateUserWizard:
Step 1. User Creation Step 2. License Step etc.
CreateUserWizardStep之后,数据将始终写入数据库,除非您重写CreateUserWizard类.
如果您扭转了Erich Peterson在4GuysFromRolla网站上发布的步骤顺序,即步骤1.许可证步骤,步骤2. …步骤3.用户创建.
更新:
我发现一个相关的post可能有帮助.简而言之:
如果要防止CreateUserWizard创建用户的CreateUser步骤,可以尝试处理CreatingUser事件并将其LoginCancelEventArgs.Cancel属性设置为true.
示例代码:
protected void RegisterUser_CreatingUser(object sender,LoginCancelEventArgs e) { e.Cancel = true; }
然后为了移动到向导中的下一页,您需要处理NextButtonClick事件:
>添加e.Cancel = False;
>添加CreateUserWizard.ActiveStepIndex =(您的下一个向导步骤索引);
之后,您将需要手动创建用户,例如在FinishButtonClick事件处理程序.
我还没有尝试,但它应该工作.希望它有帮助.