2013-08-16 106 views
0

我有一個奇怪的問題。服務器超時兩個請求

在asp.net(C#)中,我有一個帶有文本框和按鈕的Web窗體。

文本字段使用text_changed事件啓用autopostback。 該按鈕甚至還具有點擊。

如果文本在字段中更改,並且用戶單擊該按鈕而不首先丟失對文本字段的焦點,則兩個事件似乎在服務器上發生「衝突」,並且該請求需要2-3分鐘才能返回沒有。

如果文本在字段中更改並且該字段在點擊按鈕之前失去焦點,則會單獨觸發事件並且一切正常。

我需要能夠讓用戶直接點擊按鈕,當他們已經改變了文本。

有沒有其他人看過這個問題,如果有的話,你如何解決它?

+1

你想用文本框事件實現什麼? – christiandev

+0

我們需要的代碼plz。另外我認爲服務器基於某些javascript事件進行定時是不可能的。服務器端也有問題。 – Robert

+0

文本框事件在頁面上執行一些數學和更新數字。並非所有用戶都需要查看更改,其他人則需要在單擊按鈕之前更改結果。 – Stuart

回答

0

這將是更好的使用jQuery。

better to Use Keyup Or Keydown of jquery event instead of textchanged event. 
and false the autopost property of textbox. 
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"); 
} 

通知檢查的事件目標。當我測試它時,似乎即使點擊按鈕(沒有標籤),點擊事件也會被忽略,只有文本更改事件觸發。在文本更改事件中添加額外的檢查似乎解決了這個問題。儘管這是一個小缺陷,但有時(並非所有時間)文本更改事件都會被調用兩次,您可能必須在代碼中處理該事件。

相關問題