自定义CreateUserWizard 控件

最近的项目里要做一些维护,以前用的是CreateUserWizard ,结果发现里面的验证功能不够,在把创建的用户信息导入到别的表里的时候,经常会有长度的问题。或者,密码长度超出128位,用户会创建失败,但返回的信息不够友好。所以需要做一些自定义,来增强相关的功能。

代码
<asp:CreateUserWizard ID="CreateUserWizard1" Runat="server">  
  
<WizardSteps>  
    
<asp:CreateUserWizardStep runat="server">  
    
</asp:CreateUserWizardStep>  
    
<asp:CompleteWizardStep runat="server">  
    
</asp:CompleteWizardStep>  
  
</WizardSteps>  
</asp:CreateUserWizard>

这个是插入CreateUserWizard以后的状况。

做一些定制化

代码
<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">  
    
<ContentTemplate>  
        
<table border="0" style="font-size: 100%; font-family: Verdana" mce_style="font-size: 100%; font-family: Verdana">  
            
<tr>  
                
<td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #5d7b9d" mce_style="font-weight: bold; color: white; background-color: #5d7b9d">  
                    Sign Up for Your New Account
</td>  
            
</tr>  
            
<tr>  
                
<td align="right">  
                    
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">  
                        User Name:
</asp:Label></td>  
                
<td>  
                    
<asp:TextBox ID="UserName" runat="server"></asp:TextBox>  
                    
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"  
                        ErrorMessage
="User Name is required." ToolTip="User Name is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>  
                
</td>  
            
</tr>  
            
<tr>  
                
<td align="right">  
                    
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">  
                        Password:
</asp:Label></td>  
                
<td>  
                    
<asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>  
                    
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"  
                        ErrorMessage
="Password is required." ToolTip="Password is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>  
                
</td>  
            
</tr>  
            
<tr>  
                
<td align="right">  
                    
<asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">  
                        Confirm Password:
</asp:Label></td>  
                
<td>  
                    
<asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>  
                    
<asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword"  
                        ErrorMessage
="Confirm Password is required." ToolTip="Confirm Password is required."  
                        ValidationGroup
="CreateUserWizard1">*</asp:RequiredFieldValidator>  
                
</td>  
            
</tr>  
            
<tr>  
                
<td align="right">  
                    
<asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">  
                        E-mail:
</asp:Label></td>  
                
<td>  
                    
<asp:TextBox ID="Email" runat="server"></asp:TextBox>  
                    
<asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email"  
                        ErrorMessage
="E-mail is required." ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>  
                
</td>  
            
</tr>  
            
<tr>  
                
<td align="right">  
                    
<asp:Label ID="QuestionLabel" runat="server" AssociatedControlID="Question">  
                        Security Question:
</asp:Label></td>  
                
<td>  
                    
<asp:TextBox ID="Question" runat="server"></asp:TextBox>  
                    
<asp:RequiredFieldValidator ID="QuestionRequired" runat="server" ControlToValidate="Question"  
                        ErrorMessage
="Security question is required." ToolTip="Security question is required."  
                        ValidationGroup
="CreateUserWizard1">*</asp:RequiredFieldValidator>  
                
</td>  
            
</tr>  
            
<tr>  
                
<td align="right">  
                    
<asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">  
                        Security Answer:
</asp:Label></td>  
                
<td>  
                    
<asp:TextBox ID="Answer" runat="server"></asp:TextBox>  
                    
<asp:RequiredFieldValidator ID="AnswerRequired" runat="server" ControlToValidate="Answer"  
                        ErrorMessage
="Security answer is required." ToolTip="Security answer is required."  
                        ValidationGroup
="CreateUserWizard1">*</asp:RequiredFieldValidator>  
                
</td>  
            
</tr>  
            
<tr>  
                
<td align="center" colspan="2">  
                    
<asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password"  
                        ControlToValidate
="ConfirmPassword" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match."  
                        ValidationGroup
="CreateUserWizard1"></asp:CompareValidator>  
                
</td>  
            
</tr>  
            
<tr>  
                
<td align="center" colspan="2" style="color: red" mce_style="color: red">  
                    
<asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>  
                
</td>  
            
</tr>  
        
</table>  
        
<asp:CheckBox ID="SubscribeCheckBox" runat="server" Checked="True" Text="Send me a monthly newsletter." />  
        
<br />  
        
<asp:CheckBox ID="ShareInfoCheckBox" runat="server" Checked="True" Text="Share my information with partner sites." />  
    
</ContentTemplate>  
</asp:CreateUserWizardStep>  

这个也是MSDN里面的内容,定制好了,跑一下。

不行,验证都没起作用啊。

如果是一般自己做的网页,button的CausesValidation会设为true来验证页面输入。这个页面上也有button,怎么才能把它找出来呢?

这也需要自定义。

点击页面上CreateUserWizard旁边的小箭头,选择Convert to CustomNavigationTemplate,生成代码如下

代码
<CustomNavigationTemplate>   
    
<table border="0" cellspacing="5" style="100%;height:100%">   
        
<tr align="right">   
            
<td align="right" colspan="0">   
                
<asp:Button ID="StepNextButton" runat="server" CommandName="MoveNext" Text="Create User" ValidationGroup="CreateUserWizard1" />   
            
</td>   
        
</tr>   
    
</table>   
</CustomNavigationTemplate>

这段代码放在CreateUserWizardStep里,就可以做到定制button了。

再来,OK,再提交要先过验证了。

总结:实现CreateUserWizard中button的自定义是关键

原文地址:https://www.cnblogs.com/kofkyo/p/1623876.html