c#隐藏空文本框上的标签

时间:2016-06-20 13:08:13

标签: c# textbox label

我愿意将标签隐藏在空文本< - 这是我的预期输出(只是指向确保你理解我愿意在我的专业程序员的帮助下解决的问题:P),我启用了AutoPostBack并创建了一个事件OnTextChanged,并在其中定义了以下代码。但它似乎不起作用。有什么想法吗?

protected void TextBox_signup_loginid_TextChanged(object sender, EventArgs e)
{
    if (TextBox_signup_loginid.Text == "")
    {
        Label_signup_loginidcheck.Visible = false;
    }
    int found = 0;
    using (SqlConnection con = new SqlConnection(cs))
    {
        string query = "select count(*) from Users where LoginId = '" + TextBox_signup_loginid.Text + "'";
        SqlCommand cmd = new SqlCommand(query, con);
        con.Open();
        found = Convert.ToInt32(cmd.ExecuteScalar().ToString());
        if (found == 1)
        {
            Label_signup_loginidcheck.ForeColor = System.Drawing.Color.Red;
            Label_signup_loginidcheck.Text = "LoginId Already Exists";
            Label_signup_loginidcheck.Visible = true;
            hdf.Value = "false";
        }
        else
        {
            Label_signup_loginidcheck.Visible = true;
            Label_signup_loginidcheck.ForeColor = System.Drawing.Color.Green;
            Label_signup_loginidcheck.Text = "LoginId Available";
            hdf.Value = "true";
        }
    }

1 个答案:

答案 0 :(得分:0)

我不知道这是否仍然存在问题,但由于您未在此处发布答案或对您的第一篇文章发表评论,我将尝试给出答案这里。

我只是想写一下这里很难给出答案,因为我们不知道查询返回的内容以及默认情况下var发现是真(1)还是假但是我注意到你在任何情况下都会设置标签Label_signup_loginidcheck的可见性。

if (found == 1)
{
    Label_signup_loginidcheck.ForeColor = System.Drawing.Color.Red;
    Label_signup_loginidcheck.Text = "LoginId Already Exists";
    **Label_signup_loginidcheck.Visible = true;**
    hdf.Value = "false";
}
else
{
    **Label_signup_loginidcheck.Visible = true;**
    Label_signup_loginidcheck.ForeColor = System.Drawing.Color.Green;
    Label_signup_loginidcheck.Text = "LoginId Available";
    hdf.Value = "true";
}

这意味着您在任何情况下都会再次显示标签,我猜这不是您想要的。我想标签在很短的时间内不可见,但是你又将它重新设置为visible = true,你甚至可能没有注意到这种变化。

您应该在if / else分支中更改条件,或者在if或else情况下删除其中一个stamenet

Label_signup_loginidcheck.Visible = true;