我愿意将标签隐藏在空文本< - 这是我的预期输出(只是指向确保你理解我愿意在我的专业程序员的帮助下解决的问题: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";
}
}
答案 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;