2

我正在使用 CreateUserWizard 控件,我想对其进行自定义以满足我的要求。

我的问题是:是否可以使用 CreateUserWizard 控件将电子邮件文本框移动到另一个步骤,然后是CreateUserWizardStep步骤?

我想要实现的是从第 1 步获得用户名、密码和 ConfirmPassword,并在第 2 步获得电子邮件、自定义 ConfirmEmail、SecurityQuestion/SecurityAnswer 和其他信息。

我知道如何添加向导步骤,但如果我移动任何默认文本框,我会收到有关 CreateUserWizard 步骤中缺少字段的错误。

4

3 回答 3

0

我建议你用这个结构测试

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" >
    <WizardSteps>
        <asp:CreateUserWizardStep runat="server">
           .....
        </asp:CreateUserWizardStep> 
        <asp:WizardStep runat="server">
            ...
        </asp:WizardStep>
        <asp:CompleteWizardStep runat="server" />
    </WizardSteps>
</asp:CreateUserWizard>

控制使用ValidationGroup属性进行验证,以便在需要时激活验证

链接:http: //msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.button.validationgroup.aspx

于 2012-10-29T12:49:32.717 回答
0

发布问题后,我开始尝试一些我没有想到的替代方案。就像在我有 UserNameTextBox、PasswordTextBox 和 ConfirmPasswordTextBox 的 CreateUserWizard 步骤之上添加一个 WizardStep。

CreateUserWizard 步骤包含一个隐藏的 UserName、Password 和 ConfirmPassword 文本框,我在 ActiveStepChanged 事件中设置了这些值。该步骤还包含其他必填字段以将用户 sich 创建为问题和答案。

这符合我的要求,我是一个快乐的程序员:)

于 2012-10-29T13:11:22.273 回答
0

在这里,我将展示如何自定义创建用户向导 & 我正在使用Microsoft Visual Studio Express 2013 For Web

在您的 register.aspx 页面中

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" OnCreatedUser="CreateUserWizard1_CreatedUser" CreateUserButtonText="Submit">
                <WizardSteps>
                    <asp:CreateUserWizardStep ID="CreateUserWizardStep" runat="server">
                        <ContentTemplate>
                            <table>
                                <tr>
                                    <td>User name:
                                    </td>
                                    <td>
                                        <asp:TextBox ID="UserName" runat="server"></asp:TextBox>

                                    </td>
                                </tr>
                                <tr>
                                    <td>Password:
                                    </td>
                                    <td>
                                        <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox></td>
                                </tr>
                                <tr>
                                    <td>Confirm Password:</td>
                                    <td><asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
                                    </td>
                                </tr>
                                <tr class="form-group">
                                    <td>E-mail:
                                    </td>
                                    <td >
                                        <asp:TextBox ID="Email" runat="server" TextMode="Email"></asp:TextBox>
                                    </td>
                                </tr>
                                <tr>
                                    <td>First Name:
                                    </td>
                                    <td>
                                        <asp:TextBox ID="FirstName" runat="server"></asp:TextBox>
                                    </td>
                                </tr>
                                <tr>
                                    <td>Last Name:
                                    </td>
                                    <td>
                                        <asp:TextBox ID="LastName" runat="server"></asp:TextBox>

                                    </td>
                                </tr>

                            </table>
                        </ContentTemplate>
                    </asp:CreateUserWizardStep>
                    <asp:CompleteWizardStep runat="server"></asp:CompleteWizardStep>
                </WizardSteps>
            </asp:CreateUserWizard>

Register.aspx.csCreateUserWizard1_CreatedUser文件后面的代码使用此代码

        var manager = new UserManager();
        var user = new ApplicationUser() { UserName = CreateUserWizard1.UserName };
        IdentityResult result = manager.Create(user, CreateUserWizard1.Password);
        // Get the UserId of the just-added user
        MembershipUser newUser = Membership.GetUser(CreateUserWizard1.UserName);
        Guid newUserId = (Guid)newUser.ProviderUserKey;
        //Get Profile Data Entered by user in Create User Wizard control
        String FirstName = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("FirstName")).Text;
        String LastName = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("LastName")).Text;
        // Insert a new record into User_Profile
        // Get your Connection String from the web.config. MembershipConnectionString is the name I have in my web.config
        string connectionString = ConfigurationManager.ConnectionStrings["yourConnectionstring"].ConnectionString;
        string insertSql = "INSERT INTO yourDBTableName(dbTcolumn,dbTcolumn, dbTcolumn) values(@dbTcolumn, @dbTcolumn)";

            using (SqlConnection myConnection = new SqlConnection(connectionString))
            {
                IdentityHelper.SignIn(manager, user, isPersistent: false);
                myConnection.Open();
                SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
                myCommand.Parameters.AddWithValue("@dbTcolumn", FirstName);
                myCommand.Parameters.AddWithValue("@dbTcolumn", LastName);
                myCommand.Parameters.AddWithValue("@dbTcolumn", newUserId);
                myCommand.ExecuteNonQuery();
                myConnection.Close();
            }

我不是using RequiredFieldValidator。如果你想使用,只需使用 Register.aspx 页面下面的部分

<asp:RequiredFieldValidator Display="Dynamic" ID="RequiredFieldValidator4" runat="server"
                                            ControlToValidate="FirstName"  ErrorMessage="The user name field is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>

并在您的 Register.aspx.cs 中 添加CreateUserWizard1_CreatedUser代码 我希望这有助于您自定义创建用户向导。 谢谢if (result.Succeeded)


于 2014-02-16T10:28:00.203 回答