如果用户已存在,如何指示创建用户控件

时间:2011-06-29 16:52:49

标签: asp.net controls

我正在使用我自己的sql server数据库创建用户控件,我不知道哪个事件可以指示创建用户控件显示其重复用户名错误消息,如果有现有的用户名或电子邮件。

请告诉我。

感谢,

1 个答案:

答案 0 :(得分:0)

如果您使用的是aspnet成员资格,那么CreateUser Control本身就可以完成这项工作。但是根据你的问题,我猜你没有这样做。在这种情况下,您将必须使用逻辑来检查现有用户名。您可以使用自定义验证器并使用它创建服务器端验证。

实施例: 的.aspx

<asp:TextBox ID="txtUserName" runat="server" MaxLength="150"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" OnServerValidate="CustomValidator1_ServerValidate"
 ControlToValidate="txtUserName" Display="Dynamic"
 ErrorMessage="UserName Already Exists" 
 ToolTip="Please select a different UserName" ValidationGroup="Register">
</asp:CustomValidator>

背后的代码可以有:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        SqlCommand objcmd = new SqlCommand("Select * from Login_Table where UserName='" + args.Value + "'",con);
        SqlDataReader objReader;
        con.Open();
        objReader = objcmd.ExecuteReader();

        if (objReader.HasRows)
        {
            args.IsValid = false;
        }
        else {
            args.IsValid = true;
        }
        con.Close();
    }

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (!Page.IsValid)
        {
            return;
        }
// your registration code
}

请记住将提交按钮保留在与自定义验证器相同的验证组下,即在这种情况下为“注册”。您可以进一步在ajax更新面板中控制该控件。希望这会有所帮助:)