C# 事件没有被解雇

C# 事件没有被解雇,c#,asp.net,C#,Asp.net,我有一个表单,其中有一个用于电子邮件的文本框和许多其他文本框。 电子邮件的功能不应与以前输入的电子邮件匹配,但可以为空 我在文本框的文本更改事件中启动了我的代码,它工作正常。 但是当我点击更新按钮而没有将光标从文本框中移开时。 单击按钮不起作用。只有textbox的textchanged事件触发,其他情况不会发生 请帮我做同样的事情 string emailid = txtemail.Text; var emailcnt2 = (from r in context.Customers

我有一个表单,其中有一个用于电子邮件的文本框和许多其他文本框。 电子邮件的功能不应与以前输入的电子邮件匹配,但可以为空

我在文本框的文本更改事件中启动了我的代码,它工作正常。 但是当我点击更新按钮而没有将光标从文本框中移开时。 单击按钮不起作用。只有textbox的textchanged事件触发,其他情况不会发生

请帮我做同样的事情

 string emailid = txtemail.Text;
var emailcnt2 = (from r in context.Customers
                                 where r.Email == Convert.ToString(emailid)
                                 select r).SingleOrDefault();

                if (emailcnt2 != null)
                {
                    lblemail.Text = "Email already exists for customer " + emailcnt2.FirstName + " " + emailcnt2.LastName + "";
                    //  emaildisplay.Attributes.Add("style", "display:block;");
                    txtemail.Focus();
                }

如果我理解正确,您要做的是在按下按钮时触发textChanged事件

我将把所有textChanged事件逻辑放入一个ValidateTextBox方法中,分别在textbox textChanged事件和button click事件中调用它

如果我误解了你,请告诉我

编辑: 我不明白眼前的问题。
查看评论。

我查看了我遇到此问题的项目,“黑客”是将文本框放在一个
更新面板中,它似乎在大多数情况下都有效(我在按钮点击未触发时进行了测试,但很少,实际上非常罕见)

我不能确切地说出它工作的原因,我没有确切或有效的解释,但可能是因为UpdatePanel发出了自己的请求,而表单submit只是另一个请求

更进一步地说,我试图对这种行为做出解释。当文本被更改时,TextChanged事件似乎真的启动了(很搞笑,不是吗?)。我们希望这个事件在onblur时刻触发,如果是这样的话,比如文本发生了变化,但是当点击其他按钮时,ASP.Net生成的javascript可能会检查文本是否发生了变化,然后提交表单来触发这个事件。由于表单不能提交两次,按钮单击现在丢失


现在,UpdatePanel带来的是它有责任触发TextChanged事件,因此按钮单击现在像往常一样触发。

请提供代码来演示problem@AndrasZoltan我已经编写了文本更改事件的代码按钮点击不触发…只有文本更改得到firI不认为需要代码,问题很简单(也是众所周知的):当TextBox的AutoPostBack为true时,OnClick不会触发(实际上它触发的是TextChanged而不是Click事件)@AdrianIftode正是…我想要一个解决方案我想要文本更改和按钮同时启动…当我按下按钮时…只有文本更改启动,而不是按钮单击将您的按钮单击事件注册到具有适当签名的OnClick方法,在那里调用ValidateTextBox并添加按钮点击逻辑。在我看来,你的按钮好像没有事件监听器,或者你用textChanged方法听他的点击事件。双击按钮以收听其单击事件,并在它为您创建的名为button1_onClick的方法中填写逻辑。@Abhishek:Yorye Nathan是对的,您应该将功能封装到可以从任何地方调用的方法中。然后,您不需要“激发”这两个事件,因为最终的操作无论如何都是相同的,所以不需要做两次。顺便说一句,如果你有一个按钮,你不需要在文本框上自动回写。@TimSchmelter你是对的,但是电子邮件的验证将在按钮上单击,任何人都必须一次又一次地单击它来查看电子邮件是否匹配……这看起来很难看