0

私はvb.netでasp.netを使用しています

ログイン用に2 div 1 divのフォームが1つあり、もう1つは登録用で、cssを使用してこれらの2 divをアニメーション化しています

私の問題は、登録時にユーザー名が既に存在するかどうかをテストする必要があるため、データベースにアクセスする必要があり、カスタムバリデーターを使用してユーザー名を検証しているため、アプリがvbコードに移動してユーザー名を検証するページがリロードされ、バリデーターのエラーメッセージを含むすべてのフィールドが空になります

vb コード:

Public Sub cusCustom_RegisterValidate(sender As Object, e As ServerValidateEventArgs)
    Dim tbuFirstName As TextBox = Page.FindControl("usernamesignup")
    If tbuFirstName.Text = form.username Then
        e.IsValid = False
        Session("validd") = False
        CustomValidator2.ErrorMessage = "username already exists"
    Else
        e.IsValid = True
        Session("validd") = True
    End If
End Sub

Protected Sub btn_signup_Click(sender As Object, e As System.EventArgs) Handles btn_signup.Click
    If Session("validd") = False Then
        Response.Redirect("LOGIN.aspx#toregister")
        CustomValidator2.ErrorMessage = "Username already exists"
    End If
End Sub

asp コード:

 <p> 
      <label for="usernamesignup" class="uname" data-icon="u">Your username</label>
      <label for="usernamesignup" class="uname"  style="color: red;">*</label>
      <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
       ErrorMessage="Username is required !" ForeColor="Red" ControlToValidate="usernamesignup" Font-Bold="true" ValidationGroup="registerGRP" Display="Dynamic"></asp:RequiredFieldValidator>
      <asp:CustomValidator ID="CustomValidator2" runat="server" Display="Dynamic"
        ValidationGroup="registerGRP" Font-Bold="true" ForeColor="Red" onservervalidate="cusCustom_RegisterValidate"></asp:CustomValidator>
      <asp:Textbox runat="server" id="usernamesignup" name="usernamesignup" type="text" placeholder="mysuperusername690" />
</p>

ユーザー名が既に存在する場合、登録 div へのリダイレクトを強制する必要があります (有効な場合、ページが自動的に読み込まれ、ログイン div にリダイレクトされるため)

したがって、レジスタ div にリダイレクトするときに、フィールドが空になるのを防ぐにはどうすればよいですか。特にバリデータ メッセージ

どんな提案でも大歓迎です!

4

1 に答える 1

0

if(!IsPostBack)ページのプロパティ内にコードを記述してみてください。

于 2013-09-23T07:19:58.473 に答える