Salut
Je sèche sur la manipulation du controle CreateUserWizard. Je tente de le personaliser mais j'ai quelques souci sur l'utilisation du Template.
En fait, je voudrais pouvoir manipuler certaine chose sans pour autant tout reprogrammer. Je me demande si c'est vraiment possible.
Je vais faire une exposé le plus clair possible de mon état d'avancement.
Donc, j'ai mis un CreateUserWiazrd de cette manière :
Ensuite je fais ça dans le CodeBehind :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" Width="400"> <WizardSteps> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> <ContentTemplate> <asp:Label ID="UserNameLabel" runat="server"></asp:Label> <asp:TextBox ID="UserName" runat="server"></asp:TextBox> <asp:TextBox ID="Email" runat="server"></asp:TextBox> <asp:TextBox ID="Question" runat="server"></asp:TextBox> <asp:TextBox ID="Answer" runat="server"></asp:TextBox> <asp:TextBox ID="Password" runat="server"></asp:TextBox> </ContentTemplate> </asp:CreateUserWizardStep> <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"></asp:CompleteWizardStep> </WizardSteps> </asp:CreateUserWizard>
Et quand je clique sur le bouton pour valider l'inscription il me mets le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init If Membership.Provider.ApplicationName = "/" Then OW = "/" Else OW = Request.Url.Host End If CreateUserWizard1.CreateUserStep.ContentTemplateContainer.Controls.Clear() Dim UserName, Email, Question, Answer, Password As New TextBox UserName.ID = "UserName" UserName.Text = "biloute" Email.ID = "Email" Email.Text = "Mail à moi" Question.ID = "Question" Question.Text = "Question à moi" Answer.ID = "Answer" Answer.Text = "Answer à moi" Password.ID = "Password" Password.Text = "Password à moi" CreateUserWizard1.CreateUserStep.ContentTemplateContainer.Controls.Add(UserName) CreateUserWizard1.CreateUserStep.ContentTemplateContainer.Controls.Add(Email) CreateUserWizard1.CreateUserStep.ContentTemplateContainer.Controls.Add(Question) CreateUserWizard1.CreateUserStep.ContentTemplateContainer.Controls.Add(Answer) CreateUserWizard1.CreateUserStep.ContentTemplateContainer.Controls.Add(Password) End Sub
Sur la ligne de code suivante :Le paramètre 'username' ne doit pas être vide.
Nom du paramètre : username
Alors je me demande comment faire pour que le champ "UserName" que j'ai défini soit considéré comme le champ qui sert à gérer le UserName.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Protected Sub CreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreateUserWizard1.CreatedUser Roles.AddUserToRole(CreateUserWizard1.UserName, "Membre") End Sub
En fait, je vide les champs car je veux pouvoir les générer par CodeBehind. Mon idée est de faire une contrôle dynamique dans lequel je pourrais afficher ou pas certains champs tout en gardant les méthode du contrôle CreateUserWizard pour ne pas avoir à reprogrammer tous les enregistrements dans la base de données ou les principes de vérification ou autre méthode bien utile du contrôle.
Mon but est de faire, par exemple, que le contrôle puisse demande ou pas la Question/ Réponse de sécurité en fonction d'un paramettre dans la BDD ou de pouvoir déterminer une Login sous forme d'Email et donc ne pas présenter les deux champs pour la saisie mais un seul, le deuxième recevant la saisie du premier ou encore de faire une comparaison de saisie entre les deux champs Login/Email pour confirmation.
Pouvez vous m'aider ?
Partager