0

我有一个奇怪的问题。

在 asp.net (C#) 中,我有一个带有文本字段和按钮的 Web 表单。

文本字段通过 text_changed 事件启用了自动回发。该按钮甚至也有一个点击。

如果字段中的文本发生更改并且用户单击按钮而没有首先失去对文本字段的关注,则这两个事件似乎在服务器上“冲突”并且请求需要 2-3 分钟才能返回任何内容。

如果字段中的文本发生更改,并且在单击按钮之前字段失去焦点,则单独触发事件并且一切正常。

我需要能够让用户在更改文本后直接点击按钮。

有没有其他人看到这个问题,如果是这样,你如何解决它?

4

2 回答 2

0

最好使用jquery。

better to Use Keyup Or Keydown of jquery event instead of textchanged event. 
and false the autopost property of textbox.
于 2013-08-16T09:32:33.037 回答
0

我不确定这是否能解决你的问题,但试试这个:

protected void TextBox2_TextChanged(object sender, EventArgs e)
{
    if (Request.Form.Get("__EVENTTARGET") == Button2.UniqueID)
        return;
    Debug.WriteLine(TextBox2.Text);
}

protected void Button2_Click(object sender, EventArgs e)
{
    Debug.WriteLine("Text");
}

注意对 EventTarget 的检查。当我对此进行测试时,似乎即使当您单击按钮(没有制表符)时,单击事件也会被忽略,并且只会触发文本更改事件。在文本更改事件中添加额外的检查似乎可以解决这个问题。虽然这是一个小缺陷,但有时(并非一直)文本更改事件会被调用两次,您可能必须在代码中处理这个问题。

于 2013-08-16T10:24:38.373 回答