C#中用TextChanged事件为什么没反应,我是用这个事件来验证文本框TextBox中用户名注册的唯一性

protected void txtName_TextChanged(object sender, EventArgs e) { SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettings["connectionString"]); Con.Open(); SqlCommand Com = new SqlCommand("select * from tbUser where UName='" + txtName.Text.Trim() + "'", Con); SqlDataReader dr = Com.ExecuteReader(); dr.Read(); if (dr.HasRows)

以后要记住当你要启用TextChanged事件的时候要设置文本框的AutoPostBack=“true”。
AutoPostBack是属性。所有的控件默认为false。即值改变后不回传服务器。

---------------
<asp:TextBox ID="txtName" runat="server" AutoPostBack="True"
ontextchanged="txtName_TextChanged"></asp:TextBox>
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-22
前台txtName设置AutoPostBack为true,这个事件需要请求后台的,你禁止了回发就不能请求后台,自然也就不执行代码。
第2个回答  2013-02-21
txtName这个控件是不是还没有绑定事件,在构造函数里加上txtName.TextChanged+=txtName_TextChanged;试试呢追问

有啊,在视图设计代码里有  ontextchanged="txtName_TextChanged"

 

追答

在SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettings["connectionString"]);这里下断点,测试下是否停下来,如果没有说明没有触发事件,把代码拷贝一份,删除这个控件,重新建立,并且通过属性,绑定事件试试

追问

有触发,我发现它是当我按填完全部注册信息,最后按确认注册的按钮时才触发,可能因为我用的事TextChanged事件而不是TextChanging事件,但我在属性窗口只能找到文本框TextBox的TextChanged事件而找不到TextChanging事件

追答

TextChanging就是应该每写一个字就触发的,不应该是按确认注册才触发,你检查自己的代码,是不是把事件绑定错了

追问

没错啊,我在属性窗口实在找不到TextChanging事件

第3个回答  2013-02-21
这个事件是服务端事件,你难道要每改变一个字符都交服务器查询一次数据库啊追问

那你有什么建议说呗

追答

我觉得应该在改变完后,失去焦点(或者回车确认)再发回数据库。这们对服务器压力会小点!
不过用户体验可能会没有每改变一个字符都查询的效果好!

第4个回答  2013-02-21
要是用input的textbox才可以追问

input的文本框在它的属性窗口中没有事件绑定啊

C#中用TextChanged事件为什么没反应,我是用这个事件来验证文本框TextBo...
以后要记住当你要启用TextChanged事件的时候要设置文本框的AutoPostBack=“true”。AutoPostBack是属性。所有的控件默认为false。即值改变后不回传服务器。--- <asp:TextBox ID="txtName" runat="server" AutoPostBack="True"ontextchanged="txtName_TextChanged"><\/asp:TextBox> ...

textchanged 事件为什么不执行呢 ?本人初学asp.net ,请各位大虾多多指教...
TextBox1.Text = "wojiao";} } 更改TextBox文本框内容时被重新赋值 没有选择AutoPostBack不自动回发 他怎么能调用呢?这就相当于你想去吃冰棍,但是你躺在床上不去拿, 明白我的意思了么,说白就是 你想这么干,但是你没有去行动。最佳答案给我~...

TextChanged 事件不触发呀,我想点击textbox后弹出日历,然后选择日历...
你如果调用后台的cs方法,就得把AutoPostBack的属性设为true,不过这样弹出日历页面刷新的很恶心

c#中怎样控制textBox中text值改变而不触发textchanged事件
this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged);

C#清空textbox出现错误,输入字符串的格式不正确。求解
楼楼你好,因为你写了textBox2_TextChanged事件,你按清空按钮的时候先执行textBox2.Text = "",当这个值清空的时候又会执行textBox2_TextChanged事件,这时width=“”,width *"",肯定是输入字符串的格式不正确,你可以在事件那里设断点debug一下就可以更好的了解错误了。

c#textbox的textchanged事件的作用
文本框内容发生改变触发的事件。c#textbox的textchanged事件的作用是文本框内容发生改变。当文本框中的内容发生改变时,就会触发这个该事件,每输入一次字符,就会触发一次事件。

C#如何判断TextBox的值是否改变?
TextChanged是输入的这一时刻与输入前的时刻的比较 用户在输入过程中,该事件将 持续而频繁地 触发 如果你希望判断:”用户完成输入后并确保不再输入时,这个内容与用户开始输入前的内容是否不同“,请你在用户输入前,将文本内容存储在某个临时变量或存储设备中。当需要比较时,再将当前内容与缓存进行...

C#..窗体问题,关于..控制 TextBox的"TextChanged"事件...怎么做...
private void checkBox1_CheckedChanged(object sender, EventArgs e){ if (checkBox1.Checked) this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged); else this.textBox1.TextChanged -= new EventHandler(textBox1_TextChanged);}private void textBox1_TextChanged(obj...

c#用textbox模糊查询
楼上的建议不错 具体实现的问题在哪你没贴代码也不是很清楚 你可以先尝试在textchanged里面设断点看看这个事件有没有响应 如果有响应的剩下来的只是加载页面时加载gridview里面的数据的问题 如果连事件都没触发 那至少要解决这一步

C#如何判断textbox里面的值没变?如果没变就弹出对话框!
} 不知道符不符合您的意思,我的第二种理解请看下面的代码:private void TextBox1_TextChange(object sender,EventArgs e){ if(!String.IsNullOrEmpty(TextBox1.Text.Trim()))MessageBox.Show(" TextBox1的值没变! "); \/\/TextBox1的文本发生改变时警告 } ...

相似回答