首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义CreateUserWizard

自定义CreateUserWizard
EN

Stack Overflow用户
提问于 2012-10-29 12:29:55
回答 3查看 427关注 0票数 2

我正在使用一个CreateUserWizard控件,我想定制它以满足我的需求。

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

我想要实现的是从步骤1到拥有UserName、密码和ConfirmPassword,在步骤2中实现电子邮件、自定义ConfirmEmail、Security质询/SecurityAnswer和其他信息。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-29 13:11:22

发完这个问题后,我开始尝试一些我没有想过的替代方案。比如在CreateUserWizard步骤的顶部添加一个UserNameTextBox、PasswordTextBox和ConfirmPasswordTextBox。

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

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

票数 0
EN

Stack Overflow用户

发布于 2012-10-29 12:49:32

我建议你用这种结构进行测试。

代码语言:javascript
复制
<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

票数 0
EN

Stack Overflow用户

发布于 2014-02-16 10:28:00

这里我展示了如何定制创建用户向导&我使用的是Microsoft Visual Studio Express 2013 For Web

在你的register.aspx页面中

代码语言:javascript
复制
<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>

而您的CreateUserWizard1_CreatedUser文件后面的Register.aspx.cs代码使用以下代码

代码语言:javascript
复制
        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页面以下部分

代码语言:javascript
复制
<asp:RequiredFieldValidator Display="Dynamic" ID="RequiredFieldValidator4" runat="server"
                                            ControlToValidate="FirstName"  ErrorMessage="The user name field is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>

并将CreateUserWizard1_CreatedUser代码添加到Register.aspx.cs中的if (result.Succeeded)后面

我希望这是帮助您定制您的创建用户向导。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13121660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档